问答详情
源自:-

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

#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

   


提问者:慕粉4068182 2016-12-22 14:11

个回答

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

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

  • 慕粉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;

    }

    注意代码规范啊,老兄.

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

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