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

来源:-

慕粉4068182

2016-12-22 14:11

#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回答

  • 王传飞
    2016-12-22 16:27:37
    已采纳

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

    王传飞 回复慕粉4068...

    是i>=k+1,这样是没错的,最后i加一,是可以等于k+1的,完全可以全掉>号,但不去掉最后求的结果也是正确的。

    2016-12-23 09:31:12

    共 2 条回复 >

  • 慕粉0026395100
    2016-12-23 03:52:15

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

    }

    注意代码规范啊,老兄.

    慕粉4068...

    嗯嗯,好的

    2016-12-23 09:00:18

    共 1 条回复 >

  • 王传飞
    2016-12-22 16:24:30

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题