0
已解决
潘思呈
高级光能
高级光能
#include<iostream>
using namespace std;
//判断是否是质数
bool jc(int n){
for(int i=2;i<=n-1;i++){
if(n%i==0){
return false;
}
}
return true;
}
int main(){
int n,k;
cin>>n>>k;;
bool flag=false;
for(int i=2;i<=n-2;i++){
if(jc(i)&&jc(i+k)){
cout<<i<<" "<<i+k<<endl;
flag=true;
}
}
if(flag==false){
cout<<"empty";
}
return 0;
}
题目:
给你一个整数区间n,你需要找出该区间内所有的满足差为k的素数对
输入描述 Input De**ion
两个正整数n,k。1<=k<=n<=10000
输出描述 Output De**ion
所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。
样例输入 Sample Input
6924 809
样例输出 Sample Output
2 811
潘思呈在2023-10-01 11:23:28追加了内容
啊啊啊啊
我要急S了
0
0
0
0
任熠同
修练者
修练者
main函数里面的for循环是从2到n,for循环里面判断:如果i是质数,那么再来一重循环,从i+1到a。再判断:如果j是质数并且j-i==k
输出i,j,然后flag=true
0
周毅
资深光能
资深光能
你这题整体思路没问题,只要稍加修改就行了。首先在判断指数的函数的第一行要加上这一个特判if(x==1)return false;否则当n为1时你原来的函数也会把他判成质数,还有,主函数for循环的终止条件是n-k而不是n-2,因为你要判断i和i+1是否是质数所以要考虑越界的问题。
这样改一下差不多就行了。
0