题目:
已知素数序列为2、3、5、7、11、13、17、19、23、29……,即素数的第一个是2,第二个是3,第三个是5……那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是素数,则输出0。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一正整数N(1≤N≤1000000)。
输出格式:
对于每组测试,输出占一行,如果输入的正整数是素数,则输出其排位,否则输出0。
输入样例:
2
6
4
5
13
输出样例:
1
0
0
3
6
使用的主要语法:
try语句是python里面的控制语句,与except、finally配合使用处理在程序运行中出现的异常情况。try的工作原理是:当一个try语句开始后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里。try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
参考代码:
N = 1000000
index = [1]*(N+1)
def f():
index[0] = index[1] = 0
cnt = 1
for i in range(2,N + 1):
if index[i] == 0:
continue
index[i] = cnt
cnt += 1
for j in range(i * i,N+ 1,i):
index[j]=0
f()
try:
while True:
n = int(input())
print(index[n])
except EOFError:pass