卢er 2022-10-02 00:27 采纳率: 80%
浏览 42
已结题

为什么这一个数就是不对啊

题目
素数又称质数。指一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整除的数。我们定义:如果一个素数是完美的素数,当且仅当它的每一位数字之和也是一个素数。现在给你一个正整数,你需要写个程序判断一下这个数按照上面的定义是不是一个完美的素数。

Input
输入包含多组测试数据。 每组测试数据只包含一个正整数 n (1 < n <= 10^6)。

Output
对于每组测试数据,如果 n 是完美的素数,输出“YES”,否则输出“NO”(输出均不含引号)。

Examples
input复制
11
13
output复制
YES
NO
#include<stdio.h>
#include<math.h>
int main(){
int y,z,sum=0,i=2,w=2,v=2,a;
int x;
while(scanf("%d",&x)!=EOF){

a=x;
for(i=2;i<a;i++){
    if(a%i==0){
        w=1;
    }
} 
while(x>0)              //循环条件保持n不为零即可,也可以用n!=0或者括号内一个n就完事了
   {  sum+=x%10;         //累计各个位数
      x/=10;   }
for(i=2;i<sum;i++){
    if(sum%i==0){
        v=1;
    }
}if(sum==2){
    v=2;
}

if(w==2&&v==2){
    printf("YES\n");
}else{
    printf("NO\n");
}

}return 0;
}

img

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-10-02 10:57
    关注

    题主的代码修改如下,供参考:

    #include<stdio.h>
    #include<math.h>
    int main(){
        int y,z,sum=0,i=2,w=2,v=2,a;
        int x;
        while(scanf("%d",&x)!=EOF){
             a=x; sum=0;w=2;v=2;//修改
             for(i=2;i<a;i++){
                 if(a%i==0){
                    w = 1;
                 }
             }
             while(x>0)              //循环条件保持n不为零即可,也可以用n!=0或者括号内一个n就完事了
             {
                 sum+=x%10;         //累计各个位数
                 x/=10;
             }
             for(i=2;i<sum;i++){
                if(sum%i==0){
                   v = 1;
                }
             }
             if(sum == 2){
                v = 2;
             }
             if(w == 2 && v == 2){
                printf("YES\n");
             }else{
                printf("NO\n");
             }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月10日
  • 已采纳回答 10月2日
  • 修改了问题 10月2日
  • 请详细说明问题背景 10月2日
  • 展开全部

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么