a98 发表于 2018-2-10 01:08:49

关于输出100-200内的素数



void main()
{
        int i,j,k;
       
        for(i=101;i<=200;i+=2)
        {
                k=sqrt(i);
                for(j=2;j<=k;j++)
                {
                        if(i%j==0)        break;
                }
                if(j>=k+1)
                {
                        printf("%d ",i);
                }
        }
}










void main()
{
        int i,j,k;
        for(i=100;i<=200;i++)
        {
                k=sqrt(i);
                for(j=2 ;j<=k;j++)
                {
                        if(i%j==0)        break;
                }
                if(j>k)
                        printf("%d ",i);
        }
}







是不是这两种方法都可以,输出结果是一样的。






waitforlove 发表于 2018-2-10 07:31:41

第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103

BngThea 发表于 2018-2-10 12:43:42

都可以,显示第一种效率更高

a98 发表于 2018-2-10 14:06:02

waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103

因为102 104 106 108 110 112这些都肯定不是素数啊

LYHCYQ 发表于 2018-2-12 13:34:15

waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103

排除二的倍数

waitforlove 发表于 2018-2-12 13:43:37

a98 发表于 2018-2-10 14:06
因为102 104 106 108 110 112这些都肯定不是素数啊

前提是你知道它不是素数

a98 发表于 2018-2-12 15:46:08

waitforlove 发表于 2018-2-12 13:43
前提是你知道它不是素数

也是

LYHCYQ 发表于 2018-2-12 17:51:31

#include<stdio.h>
void main ()
{
        int i, j ,k ;
        for (i=2 ;i<100;i++)
        {       
               
                for(j=1; j<100;j++)
                {
                        k = (i%j);
                        if(k == 0)
                        break ;
                               
                }
                if(i=j)
                printf("%4d",i);

        }

}

a98 发表于 2018-2-12 20:49:09

LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{


??你是要求1-100内的素数吗

#include<stdio.h>
void main ()
{
        int i, j ,k ;
        for (i=2 ; i < 100 ;i++)
        {      
                k=0;
                for(j=2; j <= i/2 ;j++)
                {
                        if(i%j == 0)
                        {
                                k=1;
                                break;
                        }
                       
                }
                if(k==0)
                        printf("%-4d",i);
        }
       
}

a98 发表于 2018-2-12 20:52:44

LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{


法2

void main()
{
        int i,j,k;
        for(i=2;i<=100;i++)
        {
                k=sqrt(i);
                for(j=2 ;j<=k;j++)
                {
                        if(i%j==0)        break;
                }
                if(j>k)
                        printf("%d ",i);
        }
}

a98 发表于 2018-2-12 21:33:44

LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{


你这种我改不过来 我发个帖问问{:10_277:}
页: [1]
查看完整版本: 关于输出100-200内的素数