关于输出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);
}
}
是不是这两种方法都可以,输出结果是一样的。
第一个代码不符合题目要求,
i=101。 后面i+=2 循环一次后i=103
都可以,显示第一种效率更高 waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。 后面i+=2 循环一次后i=103
因为102 104 106 108 110 112这些都肯定不是素数啊 waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。 后面i+=2 循环一次后i=103
排除二的倍数 a98 发表于 2018-2-10 14:06
因为102 104 106 108 110 112这些都肯定不是素数啊
前提是你知道它不是素数 waitforlove 发表于 2018-2-12 13:43
前提是你知道它不是素数
也是 #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);
}
} 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);
}
}
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);
}
} LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{
你这种我改不过来 我发个帖问问{:10_277:}
页:
[1]