九度oj 素数 1047,1163,1040,1140
来源:互联网 发布:收获日2优化 编辑:程序博客网 时间:2024/06/06 16:31
1047题目:
http://ac.jobdu.com/problem.php?pid=1047
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <stack>#include <queue>#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1:0 using namespace std;bool judge(int a){ if(a<=1) return false; int sqr=(int)sqrt(a)+1; for(int i=2;i<=sqr;i++){ if(a%i==0) return false; } return true;}int main(){ int n; while(cin>>n){ puts(judge(n)? "yes" : "no"); }} /************************************************************** Problem: 1047 User: zhouyudut Language: C++ Result: Accepted Time:0 ms Memory:1532 kb****************************************************************/<=1的数,都要考虑进去
1163题目:
http://ac.jobdu.com/problem.php?pid=1163
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <stack>#include <queue>#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1:0 using namespace std;bool prime[10010];//素数void filter(int t){ int temp; for(int i=2;i<=10000;i++){ temp=t*i; if(temp>10000) break; prime[temp]=false; }}int main(){ for(int i=2;i<=10000;i++) prime[i]=true; int sqr=(int)sqrt(10000)+1; for(int i=2;i<=sqr;i++){ if(prime[i]==false) continue; filter(i); } int n; int flag=0; while(cin>>n){ flag=0; for(int i=11;i<n;i+=10){ if(i>=n) break; if(prime[i]==true){ if(flag==0) { cout<<i; flag++; } else{ cout<<' '<<i; } } } if(flag==0) cout<<"-1"; cout<<endl; }} /************************************************************** Problem: 1163 User: zhouyudut Language: C++ Result: Accepted Time:0 ms Memory:1528 kb****************************************************************/筛选法,
1163题目:
http://ac.jobdu.com/problem.php?pid=1163
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <stack>#include <queue>#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1:0 using namespace std;bool prime[10010];//素数void filter(int t){ int temp; for(int i=2;i<=10000;i++){ temp=t*i; if(temp>10000) break; prime[temp]=false; }}int main(){ for(int i=2;i<=10000;i++) prime[i]=true; int sqr=(int)sqrt(10000)+1; for(int i=2;i<=sqr;i++){ if(prime[i]==false) continue; filter(i); } int n; int flag=0; while(cin>>n){ flag=0; for(int i=11;i<n;i+=10){ if(i>=n) break; if(prime[i]==true){ if(flag==0) { cout<<i; flag++; } else{ cout<<' '<<i; } } } if(flag==0) cout<<"-1"; cout<<endl; }} /************************************************************** Problem: 1163 User: zhouyudut Language: C++ Result: Accepted Time:0 ms Memory:1528 kb****************************************************************/1040题目:
http://ac.jobdu.com/problem.php?pid=1040
这题挺有意思的,问第几个素数是?
跑数据得出2~100000,大概有9000多素数,AC程序没敢直接用100000,用的是200000,素数大概有17000多。蛮好玩的。
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <stack>#include <queue>#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1:0 using namespace std;bool prime[200010];//素数int figure[10020];void filter(int t){ int temp; for(int i=2;i<=200000;i++){ temp=t*i; if(temp>200000) break; prime[temp]=false; }}int main(){ for(int i=2;i<=200000;i++) prime[i]=true; int sqr=(int)sqrt(200000)+1; int count=0; for(int i=2;i<=sqr;i++){ if(prime[i]==false) continue; // count++; filter(i); } //cout<<"count="<<count<<endl; for(int i=2;i<=200000;i++) { if(count>10000) break; if(prime[i]==true){ count++; figure[count]=i; } }// cout<<"count="<<count<<endl; int n; while(cin>>n){ cout<<figure[n]<<endl; }} /************************************************************** Problem: 1040 User: zhouyudut Language: C++ Result: Accepted Time:10 ms Memory:1752 kb****************************************************************/1440题目:
http://ac.jobdu.com/problem.php?pid=1440
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <stack>#include <queue>#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0 ? 1:0 using namespace std;bool prime[200010];//素数int figure[10020];void filter(int t){ int temp; for(int i=2;i<=200000;i++){ temp=t*i; if(temp>200000) break; prime[temp]=false; }}int main(){ for(int i=2;i<=200000;i++) prime[i]=true; int sqr=(int)sqrt(200000)+1; int count=0; for(int i=2;i<=sqr;i++){ if(prime[i]==false) continue; // count++; filter(i); } //cout<<"count="<<count<<endl; for(int i=2;i<=200000;i++) { if(count>10000) break; if(prime[i]==true){ count++; figure[count]=i; } }// cout<<"count="<<count<<endl; int n; // count=0; while(cin>>n,n){ count=0; int sq=n/2; int temp; for(int i=1;i<=200000;i++) { if(figure[i]>sq) break; temp=n-figure[i]; if(prime[temp]==true) count++; } cout<<count<<endl; }} /************************************************************** Problem: 1440 User: zhouyudut Language: C++ Result: Accepted Time:10 ms Memory:1752 kb****************************************************************/
0 0
- 九度oj 素数 1047,1163,1040,1140
- 【九度OJ】:1047 素数
- 九度OJ 1163 素数
- 九度oj-1163-素数
- 九度OJ 1163:素数 (素数)
- 【九度OJ】1047【素数判断】
- 九度 OJ 1047:素数判定
- 九度oj--1047素数判定
- 九度OJ-1047:素数判定
- 九度oj 题目1047:素数判定
- 九度OJ-题目1047 素数判定
- 九度OJ题目1047:素数判定
- 九度OJ-1163:素数(未关联)
- 九度oj题目1163:素数
- 九度OJ题目1163:素数
- 题目1163:素数 九度OJ
- 九度OJ-题目1163:素数
- 九度OJ 1047:素数判定 (素数)
- Android 学习
- sed高级编程(二)
- 【安卓面试】Android 70道面试题(2015.12)
- Shell的GUI编程
- Two sum题解
- 九度oj 素数 1047,1163,1040,1140
- Android应用开发:如何在App中植入广告?
- POJ 3279 Fliptile(反转)
- shell脚本编程(一)
- Python函数式编程——map()、reduce()
- php 查找数组元素提高效率方法
- shell脚本编程(二)
- CentOS 7 修改SSH端口,失败。
- BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3) (转)