打印100以内的素数(质数)----C++实现、python实现

来源:互联网 发布:斗鱼主播直播软件 编辑:程序博客网 时间:2024/05/22 13:22

空间复杂度O(n),时间复杂度较快的代码(到底多少呢,求解答):(思想:i是质(素)数的时候,i的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。


Python实现:

#输出100以内的素数data=[]for i in range(2,101):    data.append(i)for j in data:    i=j    while i*j<50:        if(i*j in data):           data.remove(i*j)        i=i+1print(data)



C++实现:

#include<iostream>#include<math.h>using namespace std;#define N 1000001bool prime[N];int main(){int i,j;for(i=2;i<N;i++){if(i%2) prime[i]=true;else prime[i]=false;}for(i=3;i<=sqrt((double)N);i++){if(prime[i])for(j=i+i;j<N;j+=i)prime[j]=false;}for(i=2;i<N;i++)if(prime[i])cout<<i<<" ";system("pause");return 0;}
                                             
0 0
原创粉丝点击