求素数

这个是一个很基本的问题了,但是今天在学习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代码块。

点赞