图片被删除,或者路径改变
问题1120--素数的排位

1120: 素数的排位

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 64 MiB

题目描述

小明在研究素数,已知素数序列为2、3、5、7、……,即第一个素数是2,第二个是3,…。他为搞清一些素数究竟在素数集合中排名老几,伤透了脑筋。还是请你帮他编个程序搞定吧,否则,他慢腾腾慢腾腾地数,数到什么时候去?

输入

输入有正整数N(1≤N≤1000000)若干。

输出

运行结果每个数占1行,结果中的每个数是输入的正整数在素数集合中的排位。如果输入的不是素数(这太有可能了),那就输出一个0表示。

样例输入 Copy

2
6
4
5
13

样例输出 Copy

1
0
0
3
6

提示

可以考虑用筛选法求解,能提高效率。
先解释一下筛选法的步骤:
<1>先将1去掉
<2>将2的倍数去掉。
<3>将3的倍数去掉。
……
<i>将i的倍数去掉。
要得到不大于某个自然数N的所有素数,只要在2~N中将不大于sqrt(N)的素数的倍数全部划去即可。

来源/分类

**