解题思路:我自己首先想到的就是用bool类型的数组去保持类型,然后累加判断,感觉跟暴力没什么区别,用空间换了一点时间。至少比直接暴力去枚举快一点。
不过我觉得艾式筛法应该足够了
注意事项:
参考代码:空间换时间的,如果觉得数组太大,可以用vector来开动态的
#include<iostream> using namespace std; int main() { int prime[10000]={0}; int i,j; int n; cin>>n prime[0]=prime[1]=1; //外层枚举2到n之间的数字 for(i=2;i<n;i++) { if(prime[i]==0) { for(j=2;i*j<=n;j++) { prime[i*j]=1; } } } for(i=0;i<n;i++) { if(prime[i]==0) { cout<<i<<endl; } } return 0; }
#include<iostream> #include<vector> using namespace std; int main() { vector<int> prime; int i,j; int n; cin>>n; for(i = 0;i<n;i++) { prime.push_back(0); } prime[0] = prime[1] = 1; //外层枚举2到n之间的数字 for(i=2;i<n;i++) { if(prime[i]==0) { for(j=2;i*j<=n;j++) { prime[i*j]=1; } } } for(i=0;i<n;i++) { if(prime[i]==0) { cout<<i<<endl; } } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1447 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:514 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
【蟠桃记】 (C语言代码)浏览:1035 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:667 |
1011题解浏览:765 |
数对 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:537 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1479 |