思路:判断连续100年有几个素数,几个合数,不满足条件就一直往后推,直到s==50即可。
代码:
#定义一个判断素数的操作 def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True n=0 a=0 #输入要寻找的合数世纪个数 m=int(input('请确定m:')) while n<m: a=1+a b=a*100 c=b-99 s=0 #判断世纪是否为合数世纪 for j in range(c,b,2): if is_prime(j): break else: s = 1 + s if s == 50: n+=1 print('第',n,'个合数世纪为',a,'世纪','年号',c,'至',b,'全为合数') 结果: