首页 > 其他 > 详细

【每天一道PAT】 1015 Reversible Primes

时间:2020-04-13 11:26:59      阅读:75      评论:0      收藏:0      [点我收藏+]

思路

判断原数和“取反”后数是否为素数
1.用vector存储“取反”时用到的数字

#include <cstdio>
#include <cmath>
#include <vector>
using namespace std;
bool is_prime(int n) {
    if(n <= 1) return false;
    int sqr = int(sqrt(n * 1.0));
    for(int i = 2; i <= sqr; i++) {
        if(n % i == 0)
            return false;
    }
    return true;
}
//取反,注意基数
int reverse(int n,int r)
{
    vector<int> num;
    int result = 0;
    do {
        num.push_back(n%r);
        n /= r;
    }while (n != 0);
    for (int i = num.size()-1; i >= 0 ; --i) {
        result += num[num.size()-i-1]*pow(r,i);
    }
    return result;
}
int main()
{
    int N,D;//原数,基数
    while(scanf("%d %d",&N,&D) ,N>0)
    {
        if(is_prime(N)&&is_prime(reverse(N,D))) printf("Yes\n");
        else printf("No\n");
    }
}

【每天一道PAT】 1015 Reversible Primes

原文:https://www.cnblogs.com/xinyuLee404/p/12690103.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!