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

求大佬解答 小白弱智问题

/ 猿问

求大佬解答 小白弱智问题

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; 
}


我想找出 素数    为啥程序运行不起来

http://img3.mukewang.com/5a0828e20001563509350776.jpg

http://img4.mukewang.com/5a0828e2000132a908330325.jpg


查看完整描述

5 回答

已采纳
?
Ma峰

//img2.mukewang.com/5a0855e80001069907670501.jpg在第一个for循环里初始化c

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

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

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


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

查看完整回答
反对 回复 2017-11-14
?
慕用4063026
#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

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

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

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

查看完整回答
1 反对 回复 2017-11-12

添加回答

回复

举报

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