Emirp
N
直到 EOFEmirp
N is not prime.
N is prime.
N is emirp.
while
回圈重复输入整数 N
int N, rev_N;
while(scanf("%d", &N) != EOF){
printf("%d ", N);
...
}
for
回圈检查是否有可整除的因数,若有则代表质数,并更改 flag1
的状态;为何回圈跑到 sqrt(N)
flag1 = true;
for(i = 2; i <= sqrt((double)N); i++){
if(N % i == 0){
flag1 = false;
break;
}
}
N
为合数就不用再计算;若为质数就用 while
把 N
颠倒,并再判断一次若颠倒後是同个数,根据题目要求要撇除此情况,所以就更新 flag2
的状态
if(flag1){
int temp = N;
while(temp > 0){
rev_N = rev_N * 10 + temp % 10;
temp = temp / 10;
}
if(rev_N == N){
flag2 = false;
}
else{
...
}
}
for
回圈再检查一次颠倒後的 rev_N
是否为质数
for(i = 2; i <= sqrt((double)rev_N); i++){
if(rev_N % i == 0){
flag2 = false;
break;
}
}
#include<stdbool.h>
#include<stdio.h>
#include<math.h>
int main(){
int N, rev_N;
bool flag1, flag2;
int i;
while(scanf("%d", &N) != EOF){
printf("%d ", N);
flag1 = true;
flag2 = true;
rev_N = 0;
for(i = 2; i <= sqrt((double)N); i++){
if(N % i == 0){
flag1 = false;
break;
}
}
if(flag1){
int temp = N;
while(temp > 0){
rev_N = rev_N * 10 + temp % 10;
temp = temp / 10;
}
if(rev_N == N){
flag2 = false;
}
else{
for(i = 2; i <= sqrt((double)rev_N); i++){
if(rev_N % i == 0){
flag2 = false;
break;
}
}
}
}
if(flag1 && flag2){
printf("is emirp.\n");
}
else if(flag1){
printf("is prime.\n");
}
else{
printf("is not prime.\n");
}
}
return 0;
}
<<: [NestJS 带你飞!] DAY08 - Exception & Exception filters
>>: Data layer implementation (2)
Who Am I 我今年升大一,在此生最长的假期中写写文章打发时间。平常喜欢写写程序,研究新技术。是...
tags: 2021铁人赛 React 既上一篇介绍完useState hook後,本篇就来介绍Da...
若您是一位 Open Source Repository 拥有者, Code Review、讨论与回...
呼, 30 天,结束了。 首先,如果你真的从第一天看到第三十天,请先给自己一个掌声,能看拙作看到现在...
风险 表示发生,可能会对价值或资产造成负面的冲击。 风险是外部威胁利用弱点对内部资产造成冲击的可能性...