首页 > 代码库 > PAT-1015 Reversible Primes (20)
PAT-1015 Reversible Primes (20)
#include<stdio.h>#include<cmath>#include<algorithm>#include<stack>using namespace std;int main(){ int n,d; stack<int> s; //freopen("1015-in.txt","r",stdin); //freopen("1015-out.txt","w",stdout); while(true) { scanf("%d",&n); if(n<0) break; scanf("%d",&d); bool flag=false; for(int i=2;i<=sqrt(n*1.0);i++) { if(n%i==0) { flag=true; break; } } if(flag) { printf("No\n"); continue; } int data=http://www.mamicode.com/n; while(true) { int mod = data%d; s.push(mod); data=data/d; if(data=http://www.mamicode.com/=0) break; } int exp=0; int sum=0; while(!s.empty()) { int num=s.top(); sum+=num*pow(d*1.0,exp); exp++; s.pop(); } //printf("%d\n",sum); for(int i=2;i<=sqrt(sum*1.0);i++) { if(sum%i==0) { flag=true; break; } } if(flag||sum<2) { printf("No\n"); } else { printf("Yes\n"); } } fclose(stdin); fclose(stdout); return 0;}
给定十进制n和d,n的d进制数反转之后转换十进制数m,判定n和m是否均为素数
一个special case
2 2
2转换成二进制后变成10,反转01,再变成十进制是1,显然不是素数了。不要理所当然就认为给的数就一定是素数。
PAT-1015 Reversible Primes (20)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。