解题思路:我自己首先想到的就是用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 人评分
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:796 |
C二级辅导-等差数列 (C语言代码)浏览:628 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:626 |
C语言训练-大、小写问题 (C语言代码)浏览:2421 |
Pascal三角 (C语言代码)浏览:1252 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
程序员的表白 (C语言代码)浏览:706 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:934 |
printf基础练习2 (C语言代码)浏览:796 |