0
已解决
史亚东
新手守护
新手守护
#include<iostream> #include<algorithm> #include<string> #include<cmath> using namespace std; int main() { int a,z=-1,c[10000],sum=0; cin>>a; bool l; for(int i=2;i<=a;i++) { l=true; for(int j=2;j<i;j++) { if(i%j==0) { l=0; break; } } if(l) { z++; c[z]=i; } } for(int i=0;i<=z;i++) { for(int j=i;j<=z;j++) { if(c[j]-c[i]==2) { cout<<c[i]<<" "<<c[j]<<endl; } } } return 0; }
90分
题目描述 Description
两个相差为2的素数称为素数对,如3和5,5和7等,输入一个数N,找出所有两个数均不大于N的素数对。
输入描述 Input Description
输入一个正整数N,1=<N<=10000
输出描述 Output Description
输出所有小于等于N的素数对。每对素数对输出一行, 中间用一个空格隔开。若没有找到任何素数对,则输出“Error”。
样例输入 Sample Input
20
样例输出 Sample Output
3 5
5 7
11 13
17 19
求各位大佬帮忙,谢谢
2
0
欧阳语聪
资深守护
资深守护
bool js(int x) { int j=2; while(j<sqrt(x)&&x%j!=0)j++; return j>sqrt(x); } int main() { int n,i;bool q=1; cin>>n; for(i=3;i<=n-2;i++) if(js(i)==1&&js(i+2)==1) { cout<<i<<" "<<i+2<<endl;q=0; } if(q==1)cout<<"Error";
0