查找素数有两种方法,一种比较常规:
print('判断1000以内的素数') for i in range(2,100): flg = 0 for j in range(2,i-1): # if not(i%j): flg = 1 break if(flg == 0): print(i,'是素数') print('Good Bye!!!') |
这种方法会一直找,直到找到 n-1 截至
还有一种:
import math print(math.sqrt(4)) print(4**(0.5)) def find_prime(num): print('找出素数') for i in range(2,num): flg = 0 j=2 while(j<=math.sqrt(i)): # T(log2n) if not(i%j): flg = 1 break j = j+1 if(flg==0): print(i,'是素数') print('Good Bye') |
这种找到 n 的二次根停下来退出循环,更加简洁。