哐哐蜜柑614 2021-11-28 16:48 采纳率: 100%
浏览 36
已结题

判断素数 这样写为什么会编译错误

问题描述
素数是只能被1和自己整除的整数。例如2,3,5和7是素数,4,6,8,9不是素数。给定一个正整数,判定该整数是否为素数。

输入
第一行一个正整数T,表示有T组测试数据。以下有T行,每行有一个正整数a(a<10000)。

输出
每组测试数据输出一行,如果输入的正整数是素数,输出yes,否则输出no。

输入样列
3
2
7
9

输出样例
yes
yes
no
#include<stdio.h>
int judge(int n)
{
if(n<=1) return 0;
else{
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
}
return 1;
}
int main()
{
int t,i,n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
if(judge(n)) puts("yes");
else puts("no");
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-11-28 20:24
    关注

    没什么错误,int judge(int n) 函数里把 i 定义移到函数开始处,试试:

    #include<stdio.h>
    int judge(int n)
    {
        int i;        //修改
        if(n<=1) return 0;
        else{
             for(i=2;i*i<=n;i++){ //修改
                 if(n%i==0) return 0;
             }
        }
        return 1;
    }
    int main()
    {
        int t,n; //修改
        scanf("%d",&t);
        while(t--){
              scanf("%d",&n);
              if(judge(n)) puts("yes");
              else         puts("no");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月28日
  • 已采纳回答 11月28日
  • 创建了问题 11月28日

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了