1013. 数素数 (20)
2015-11-22 19:42
211 查看
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:
输出样例:
我的版本
更好一点的版本
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
我的版本
#include<cstdio> #include<cmath> #include<iostream> using namespace std; int main() { int i,j,f[105000]={0}; int k=1,a[105000]={0},n,m,x=0; cin>>n>>m; for(i=2;i<105000;i++) { for(j=2;j<=sqrt(i);j++) { if(i%j==0) f[i]=1; } if(f[i]==0) a[k++]=i; } for(i=n;i<=m;i++) { x++; printf("%d%c",a[i],(x%10==0||i==m)?'\n':' '); } return 0; }
更好一点的版本
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int res[10005]; int is_p(int x) { int i; for(i=2;i*i<=x;i++) if(x%i==0) return 0; return 1; } int main() { int m,n; cin>>m>>n; int i,j; int cnt=0; for(i=2;cnt<n;i++) { if(is_p(i)) { cnt++; res[cnt]=i; } } int t=0; for(i=m;i<=n;i++) { t++; printf("%d",res[i]); printf("%c",(t%10==0||i==n)?'\n':' '); } return 0; }
相关文章推荐
- 处理键盘通知
- Android之开发常用小功能(持续更新中。。。)
- Hibernate 映射关系 ---Many2Many 单向关联
- 切入点表示式
- IP协议
- C++与C#在变量定义上的区别
- gray code
- 指针数组以及数组指针
- 手动构建Servlet项目的流程
- 意外却又是必然的逻辑
- 慕课网 static 静态变量
- Android TextView跑马灯效果与设置文字阴影
- Maximum Product subarray | LeetCode
- 两个线程与stringbuffer和stringbuiler以及lock synchronized线程测试
- spawn分析
- iOS-UIButton和UIImageView的区别
- 可变参数列表<stdarg.h>
- JAVA解析XML文件(三)---JDOM方式解析
- XML文件读取
- Node.js-require() 源码解读