zoukankan      html  css  js  c++  java
  • 1015. Reversible Primes (20)

    1015. Reversible Primes (20)

    reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.

    Now given any two positive integers N (< 105) and D (1 < D <= 10), you are supposed to tell if N is a reversible prime with radix D.

    Input Specification:

    The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.

    Output Specification:

    For each test case, print in one line "Yes" if N is a reversible prime with radix D, or "No" if not.

    Sample Input:
    73 10
    23 2
    23 10
    -2
    
    Sample Output:
    Yes
    Yes
    No
    
     
    C++语言: Codee#22948
    01 #include <cstdio>
    02 #include <cmath>
    03 #include <cstdlib>
    04 #include <cstring>
    05 #include <cctype>
    06 #include <vector>
    07 #include <map>
    08 #include <queue>
    09 #include <list>
    10 #include <stack>
    11 #include <bitset>
    12 #include <set>
    13 #include <fstream>
    14 #include <sstream>
    15 #include <iomanip>
    16 #include <algorithm>
    17 #include <iostream>
    18
    19 using namespace std;
    20
    21 FILE*            fin         = stdin;
    22 FILE*            fout         = stdout;
    23 const int        max_size     = 10086;
    24
    25 int is_prime(int x)
    26 {
    27     if(x == 2)
    28         return 1;
    29     if(x <= 1 || x % 2 == 0)
    30         return 0;
    31     int rg = sqrt((float)x) + 1;
    32     for(int i = 3; i <= rg; i += 2)
    33         if(x % i == 0)
    34             return 0;
    35     return 1;
    36 }
    37
    38 int judge_reverse(int x, int rdx)
    39 {
    40     int rev = 0;
    41     while(x)
    42     {
    43         rev = rev * rdx + x % rdx;
    44         x = x / rdx;
    45     }
    46     return is_prime(rev);
    47 }
    48
    49
    50 int main()
    51 {
    52     int x, rdx;
    53     while(scanf("%d", &x) && x >= 0)
    54     {
    55         scanf("%d", &rdx);
    56         if(is_prime(x) && judge_reverse(x, rdx))
    57             printf("%s\n", "Yes");
    58         else
    59             printf("%s\n", "No");
    60     }
    61
    62     return 0;
    63 }
  • 相关阅读:
    主要几种通信协议的性能比较(转载)
    mina与spring集成(翻译)
    DF标志和串传送指令
    编写不会产生除法溢出的子程序
    转: 匈牙利标记法
    转:四种方式实现从尾到头输出单向链表(链表逆序打印)
    汇编语言注释标记符
    汇编将数据以十进制格式显示在屏幕上
    转:汇编寄存器的使用
    蒙特卡罗算法 求数组主元素
  • 原文地址:https://www.cnblogs.com/invisible/p/2198626.html
Copyright © 2011-2022 走看看