为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬解答 小白弱智问题

求大佬解答 小白弱智问题

C C# C++
qq_幻梦_7 2017-11-12 18:57:05
   #include <stdio.h> int main() { int a,b,i,t,c=0,d; scanf("%d %d",&a,&b); if (a<b) { t=a; a=b; b=t; }   for (i=b;i<a+1;i++)    {     for(d=0;d<i+1;d++)     {     if(i%d==0)     {   c++;      }           } if (c==2) { printf("%d",i)  ; }     }   return 0;  }我想找出 素数    为啥程序运行不起来
查看完整描述

4 回答

已采纳
?
Ma峰

TA贡献13条经验 获得超3个赞

//img1.sycdn.imooc.com//5a0855e80001069907670501.jpg在第一个for循环里初始化c

查看完整回答
反对 回复 2017-11-12
?
慕哥8595403

TA贡献5条经验 获得超0个赞

判断第二个数字的时候c没有重新初始化为0。

修改建议:除了2以外的偶数都不是素数,可以直接把偶数去掉。d不需要从0开始也没必要从1开始,因为任何数字对1取余都是0。


事实上,遍历i能否被从2到i的平方根之间的素数整除,若不能,则为素数。

查看完整回答
反对 回复 2017-11-14
?
慕用4063026

TA贡献195条经验 获得超115个赞

#include <stdio.h>
int main()
{
    int a,b,i,t,c=0,d;
    scanf("%d %d",&a,&b);
    if (a<b)
    {
        t=a;
        a=b;
        b=t;
         
    }  
     
    for (i=b;i<a+1;i++)
   {
     for(d=1;d<i+1;d++)
     {
         if(i%d==0)
         {
          c++;  
       }   
        
   }
    if (c==2)
    {
        printf("%d",i)  ;
    }   
     } 
     return 0; 
}

输入:6 5

输出:5

查看完整回答
反对 回复 2017-11-13
?
sherryliu

TA贡献5条经验 获得超1个赞

可能问题出在第十六行d=0上,我没有软件,没法运行。应该从1开始吧

查看完整回答
反对 回复 2017-11-12
?
Ma峰

TA贡献13条经验 获得超3个赞

能运行那语法上应该没错,不能输出正确数据那就是你逻辑上有问题了,你把代码结构整规范试试。

查看完整回答
1 反对 回复 2017-11-12
  • 4 回答
  • 0 关注
  • 3163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信