zoukankan      html  css  js  c++  java
  • PAT 甲级测试题目 -- 1015 Reversible Primes

    题目链接

    题目描述

    反转素数指的是某个数是素数,且它在某进制的情况下反转过来的数字也是素数。例如:73 在 10 进制的情况下反转过来是 37,两个数都是素数,因此 73 是反转素数。
    输入:
    若一行输入给你两个正整数 N 和 M,N 小于 105,1 < M <= 10。
    若一行输入为负数时停止输入。
    输出:
    根据输入的数据判断它不是反转素数。
    若是,则输出 Yes
    若不是,则输出 No

    分析

    进制转换 + 素数判断(注意 1 不是素数),该题为水题

    实现

    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int ReverseNum(int number, int redix) {
        string str;
        do {
            int temp = number % redix;
            str += temp + '0';
            number /= redix;
        } while (number != 0);
    
        int reverseNum = 0;
        for (int i = 0; i < str.size(); ++i) {
            char t = str[i];
            reverseNum = reverseNum*redix + t - '0';
        }
        return reverseNum;
    }
    
    bool isPrime(int number) {
        if (number <= 1)
            return false;
        for (int i = 2; i <= sqrt(number); ++i) {
            if(number % i == 0)
                return false;
        }
        return true;
    }
    
    int main() {
        int number, redix;
        while (true) {
            cin >> number;
            if (number < 0)
                break;
            cin >> redix;
            if(isPrime(number) && isPrime(ReverseNum(number, redix))){
                cout << "Yes" << endl;
            } else
                cout << "No" << endl;
        }
        return 0;
    }
    

    希望能帮到大家

  • 相关阅读:
    代码1
    js中级第13天
    dom 浏览器模型
    js中级第12天
    js中级第11天
    js中级第十天
    js中级第九天
    js中级第8天
    js中级第六天
    js中级第七天
  • 原文地址:https://www.cnblogs.com/Breathmint/p/10341861.html
Copyright © 2011-2022 走看看