zoukankan      html  css  js  c++  java
  • 【每天一道PAT】 1015 Reversible Primes

    思路

    判断原数和“取反”后数是否为素数
    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
    ");
            else printf("No
    ");
        }
    }
    

    解法二

    #include <cstdio>
    #include <cmath>
    #include <vector>
    using namespace std;
    vector<int> num;
    bool reverse(int n,int r)
    {
        int result = 0;
        do {
            num.push_back(n%r);
            n /= r;
        }while (n != 0);
          //判断是否回文
        for (int i = 0; i < num.size()/2 ; ++i) {
            if(num[i] != num[num.size()-1-i]) return false;
        }
        return true;
    }
    int main()
    {
        int N,b;
        scanf("%d %d",&N,&b);
        if(reverse(N,b)) printf("Yes
    ");
        else  printf("No
    ");
        for (int i = num.size()-1; i >=0; --i)
        {
            printf("%d",num[i]);
            if(i != 0) printf(" ");
        }
    }
    
  • 相关阅读:
    如何结合后台数据库 启动vue项目
    nodejs卸载安装
    mysql安装过程
    VUE-cli脚手架
    css伪类
    element中遇到的表格问题总结
    小程序折叠面板的功能
    vue学习中遇到的onchange、push、splice、forEach方法使用
    vscode好用的扩展及常用的快捷键
    Flutter之SliverAppBar
  • 原文地址:https://www.cnblogs.com/xinyuLee404/p/12690103.html
Copyright © 2011-2022 走看看