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

    1015. Reversible Primes (20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    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
    

    提交代码

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <string>
     4 #include <queue>
     5 #include <stack>
     6 #include <iostream>
     7 using namespace std;
     8 bool prime[100005];
     9 void getprime(int n){
    10     memset(prime,false,sizeof(prime));
    11     int i,j;
    12     prime[2]=true;
    13     for(i=3;i<=n;i+=2){
    14         prime[i]=true;
    15         for(j=3;j*j<=i;j++){
    16             if(i%j==0){
    17                 prime[i]=false;
    18                 break;
    19             }
    20         }
    21     }
    22 }
    23 int main(){
    24     //freopen("D:\INPUT.txt","r",stdin);
    25     getprime(100005);
    26     int n,d;
    27     while(scanf("%d",&n)!=EOF){
    28         if(n<0){
    29             break;
    30         }
    31         scanf("%d",&d);
    32         if(!prime[n]){
    33             printf("No
    ");
    34             continue;
    35         }
    36         queue<int> q;
    37         while(n){
    38             q.push(n%d);
    39             n/=d;
    40         }
    41         //cout<<n<<endl;
    42         while(!q.empty()){
    43             n*=d;
    44             n+=q.front();
    45             q.pop();
    46         }
    47         //cout<<n<<endl;
    48         if(prime[n]){
    49             printf("Yes
    ");
    50         }
    51         else{
    52             printf("No
    ");
    53         }
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    冲刺周期第一天
    05构建之法阅读笔记之三
    第十周进度表
    问题账户需求分析
    2016年秋季个人阅读计划
    课后作业--1:《软件需求与分析》博文读后感
    《人月神话》阅读笔记--3
    《人月神话》阅读笔记--02
    《人月神话》阅读笔记--01
    个人总结
  • 原文地址:https://www.cnblogs.com/Deribs4/p/4708267.html
Copyright © 2011-2022 走看看