回文孪生素数对

“回文素数”是指正读和反读都一样的素数,例如 11, 101, 131 等。“孪生素数”指相差为2的两个素数,例如:11与13,17与19。若x是回文素数,x+2是素数,则称(x,x+2)为回文孪生素数对,例如(3,5) , (101,103)。编写一个程序,输入两个正整数 n,k,输出 K个大于等于n的回文孪生素数对。
思路:先判断素数->回文孪生

#include<iostream>
#include<string>
using namespace std;

bool isPrime(int num){
   if(num<2)return false;
    for(int i=2;i*i<=num;i++){
        if(num%i==0)return false;
    }
    return true;
}
bool isP(int num){
    string s=to_string(num);//数值转化为字符串
    int left=0,right=s.size()-1;
    while(left<right){
        if(s[left]!=s[right])return false;
        left++;
        right--;
    }
    return true;
}
int main(){
    int n,k;
    cin>>n>>k;
    int count=0;
    int x=n;
   while(count<k){
       if(isP(x)&&isPrime(x)&&isPrime(x+2)){
           cout<<"("<<x<<","<<x+2<<")"<<endl;
           count++;
       }
       x++;
 }
    return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务