首页 > 其他 > 详细

PAT A1015 Reversible Primes(可逆素数)

时间:2020-08-25 14:44:19      阅读:60      评论:0      收藏:0      [点我收藏+]

技术分享图片
这是一道素数判断问题,虽然思路很明确,要注意的是文中的D代表的是素数的进制,但是素数的判断要在十进制的范围内来做。

  • 一点经验:如果说一道题目已经拿到了大部分的分数,说明代码整体是正确的,只是一些输入的特殊情况没有考虑在内,此时应该重新读题,发现并考虑如何处理这些特殊输出
  • 例如bool isprime(int n)函数中对于if(n <= 1 ) return false;的边界判断
#include<cstdio>
#include<math.h>
using namespace std;
const int N = 100010;

bool isprime(int n){
    if(n <= 1 ) return false;
    int half = (int)sqrt(n*1.0);
    bool is_prime = true;
    for(int i = 2;i <= half; i ++){
        if(n%i==0){
            is_prime = false;
        }
    }
    return is_prime;
}

int reverse(int n,int d){
    int int_array[N];
    int count = 0;
    int result = 0;
    while(n){
        int_array[count++] = n%d;
        n = n/d;
    }
    for(int i = 0;i < count;i++){
        result = result*d+int_array[i];
    }
    return result;
}

int main(){
    int n,d;
    scanf("%d",&n);
    while(n>0){
        scanf("%d",&d);
        if(!isprime(n)){
            printf("No");
        }else{
            int r = reverse(n,d);
            isprime(r)?printf("Yes"):printf("No");
        }
        printf("\n");
        scanf("%d",&n);
    }
    return 0;
}

PAT A1015 Reversible Primes(可逆素数)

原文:https://www.cnblogs.com/shuibeng/p/13559032.html

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