这个是一个很基本的问题了,但是今天在学习python的时候发现了点新东西:
一般求素数都是这一类写法:
#include<stdio.h>
#include<math.h>
int main(){
for(int number=2;number<100;number++){
int i=0;
for(i=2;i<(int)sqrt(number);i++){
if(number%i==0)
break;
}
if(i>=(int)sqrt(number))
printf("%d ",number);
}
}
但今天看到python求素数的代码是这样的:
def prime_numbers():
list=[]
i=2
for i in range(2,100):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
list.append(i)
return list
print(prime_numbers())
注意:此处的else是和for连用的;当else和for连用时,只有当for循环没有跳转的全部运行完时才能运行else代码块。