(python)判断101-200之间有多少个素数,并输出所有素数。
题目:判断101-200之间有多少个素数,并输出所以素数。这道题俺思路是这样的:首先我们要知道什么是素数;素数又称质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。简而言之就是除了1和数本身还能不能被其它数整除,不能就是素数!用两个for循环,外循环101—200,内循环判断是否能被整除。如果是素数flag为真,否则为假并终止本次循环!想到了三种方法–>...
·
题目:
判断101-200之间有多少个素数,并输出所以素数。
这道题俺思路是这样的:首先我们要知道什么是素数;
素数又称质数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
简而言之就是除了1和数本身还能不能被其它数整除,不能就是素数!
用两个for循环,外循环101—200,内循环判断是否能被整除。
如果是素数flag为真,否则为假并终止本次循环!
想到了三种方法–>
1.憨憨憨方法:
直接从2到数本身判断有无因数
sum=0
for i in range(101,201):
for j in range(2,i):
if i%j!=0:
flag=True
else:
flag=False
break
if flag==True:
sum+=1
print("%d"%i,end=" ")
print(" ")
print("There are %d numbers!"%sum)
2.憨憨方法:
自己举例得知其因数一定小于数的一半
所以直接从2到数除2判断有无因数
sum=0
for i in range(101,201):
for j in range(2,int(i/2)):
if i%j!=0:
flag=True
else:
flag=False
break
if flag==True:
sum+=1
print("%d"%i,end=" ")
print(" ")
print("There are %d numbers!"%sum)
3.憨方法:
自己举例得知其因数一定小于等于数的根号
所以直接从2到数的根号判断有无因数
import math
sum=0
for i in range(101,201):
for j in range(2,int(math.sqrt(i))+1):
if i%j!=0:
flag=True
else:
flag=False
break
if flag==True:
sum+=1
print("%d"%i,end=" ")
print(" ")
print("There are %d numbers!"%sum)
可能我讲的不太清楚,因为自己也是初学者,哈哈哈。
这是运行结果!
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
There are 21 numbers!
就这样啦!
更多推荐
已为社区贡献4条内容
所有评论(0)