题目链接:1013 数素数
1、所有的偶数中只有2是素数,其他的素数都是来自奇数,所以除了2以外的偶数都不用判断
2、在判断的时候从奇数3开始判断,步长是2,每次需要判断的都是奇数
3、2*8= 8*2,4 = sqrt(16),把16写成两个数相乘,一定是有一个大于等于4,一个小于等于4,也就是一个数小于等于sqrt(16),一个大于等于sqrt(16)。若a = b * c,则b和c中,一定有一个数小于等于sqrt(a)。只需要判断a能不能整除小于等于sqrt(a)的数即可。
4、使用一个变量cnt统计是第几个素数,在要求的区间内就输出
5、每10个数一组输出,每组的最后一个没有空格,直接换行
def judge(n):
if n == 1 or n == 0:
return False
if n == 2 or n == 3:
return True
for i in range(3,int(n**0.5)+1,2):
if n % i == 0:
return False
return True
m,n = map(int,input().split())
flag = False
cnt = 0
i = 0
while cnt < n:
i += 1
if i % 2 == 0 and i != 2:
continue
if judge(i):
cnt += 1
if flag:
print('',end=' ')
if cnt >= m:
print(i,end='')
flag = True
if (cnt - m + 1) % 10==0:
flag = False
print('')