H-준소수 세기
시간 제한1초메모리 제한128 MB
4n+1 꼴 수만 다루는 세계에서 두 H-소수의 곱인 H-반소수를 h 이하 범위에서 세는 문제입니다.
문제
이 문제는 다비트 힐베르트(David Hilbert)가 꼴의 수에 대한 이론을 연구해 보라고 제안한 연습 문제에서 비롯되었습니다. 여기서는 그 이론의 아주 작은 일부만 다룹니다.
H-수는 4의 배수보다 1 큰 양의 정수입니다. 즉 가 H-수입니다. 이 문제에서는 이 수들만 존재한다고 가정합니다. H-수들은 곱셈에 대해 닫혀 있습니다.
보통의 정수와 마찬가지로 H-수를 단위원(unit), H-소수, H-합성수로 나눕니다. 단위원은 하나뿐입니다. H-수 가 단위원이 아니면서 두 H-수의 곱으로 나타내는 방법이 한 가지뿐이면 를 H-소수라고 합니다. 나머지 H-수는 모두 H-합성수입니다.
예를 들어 처음 몇 개의 H-합성수는 , , , , 입니다.
여러분이 할 일은 H-준소수의 개수를 세는 것입니다. H-준소수는 정확히 두 개의 H-소수의 곱으로 나타낼 수 있는 H-수입니다. 두 H-소수는 같아도 되고 달라도 됩니다. 위 예에서 다섯 개의 수는 모두 H-준소수입니다. 반면 는 세 개의 H-소수의 곱이므로 H-준소수가 아닙니다.
입력
각 줄에는 을 만족하는 H-수 가 하나씩 주어집니다. 마지막 줄에는 이 주어지며, 이 줄은 처리하지 않습니다.
출력
입력으로 주어진 각 H-수 에 대해, 와 이상 이하의 H-준소수의 개수를 공백 하나로 구분하여 한 줄에 출력합니다.