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

希望有大神能够解析此题,能有详细过程(拜托,拜托)

#include<math.h>

main()

{     int a,b,m,k,i,n=0;

printf(“input a and b:\n”);

scanf("%d%d",&a,&b);

for(m=a;m<=b;m++)

{     if(!(n%5))    printf(“\n");

k=sqrt(m);

for(i=2;i<=k;i++)

if(!(m%i))      break;

if(i>=k+1)

{printf(“%-5d",m);        n++;}

               }

}

输入数据:100   110<回车>,结果为 答案

A.100  102  104  106  108  110    

B.100102104106108110    

C.101  103  107  109    

D.101103107109

   


正在回答

3 回答

求大于a(100)小于b(110)范围内质数吧,gdb调试看吧,就能看到他的流程了,只是绕人而已,并不复杂,写出来流程估计也没心思看。简单说:每五个一组(回车),m在a到b范围内变化,m不能被2到自己(m)的开方整除,则输出该数(质数就是这么求的)。

0 回复 有任何疑惑可以回复我~
#1

慕粉4068182 提问者

其实此题目有问题i>k+1是有错的,谢谢你的回复。
2016-12-23 回复 有任何疑惑可以回复我~
#2

王传飞 回复 慕粉4068182 提问者

是i>=k+1,这样是没错的,最后i加一,是可以等于k+1的,完全可以全掉>号,但不去掉最后求的结果也是正确的。
2016-12-23 回复 有任何疑惑可以回复我~

#include<stdio.h>

void prime(int a)

{

    int i;

    for(i=2;i<a;i++)

    {

        if(a%i==0)

        break;

    }

    if(i==a)

    {

        printf(" %d",a);

    }

}

int main()

{

    int a,b,c;

    scanf("%d%d",&a,&b);

    if(a>b)

    {

        c=a;

        a=b;

        b=c;

    }

    for(;a<=b;a++)

    {

        prime(a);

    }

    return 0;

}

注意代码规范啊,老兄.

0 回复 有任何疑惑可以回复我~
#1

慕粉4068182 提问者

嗯嗯,好的
2016-12-23 回复 有任何疑惑可以回复我~

求大于100(a)小于110(b)范围内和110(b)的质数吧,gdb调试看吧,就能看到他的流程了,只是绕人而已,并不复杂,写出来流程估计也没心思看。简单说:每五个一组(回车),m在a到b范围内变化,m不能被2到自己的开方整除,则输出该属。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

希望有大神能够解析此题,能有详细过程(拜托,拜托)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信