求100到200之间的素数,用C语言编写 我写了下面的程序 哪位高手可以帮我纠错啊

#include<stdio.h>
void main ()
{
int i=100,c,a;
while(i<=200)
{
c=2;
while(c<=i)
{
a=i%c;
if(a==0)
{
printf("%d\n",i);
c=i+1;
}
else c=c+1;
}
i=i+1;
}
}

这个是我自己的程序编写 但是输出来是错的结果 能帮我纠正一下么

第1个回答  2010-04-18
#include<stdio.h>
void main ()
{
int i=100,c,a;
while(i<=200)
{
c=2;
while(c<=i)//只要除到这个数的平方根就行了、

{
a=i%c;
/*你这个绝对不行的,素数一般是要使用除的,而不是求余

比如 150不是素数。但是150%10=0 这个是求余*/

if(a==0)
{
printf("%d\n",i);
c=i+1;//在已经知道一个数是素数的情况下可以跳出里面的循环了,对不对
}
else c=c+1;
}
i=i+1;
}
}

给你一个世界上最强(不是最强之一)的求素数的程序,
找QQ504449327要,你就说“要最好的求素数的程序”
第2个回答  2010-04-18
#include<stdio.h>
void main ()
{
int i=100,c,a;
while(i<=200)
{
c=2;
while(c<=i)
{
a=i%c;
if(a==0)
{
printf("%d\n",i);
c=i+1;//这里赋值后会有点问题。
}
else c=c+1;
}
i=i+1;
}
}
以下是我编的!可以看下:
#include<stdio.h>
#include<math.h>
void main()
{ int m,i,k,n=0;
for(m=101;m<=200;m++)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{printf("%4d",m);
n++;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}本回答被提问者采纳
第3个回答  2010-04-19
这样当然错了啊;你输出的不是素数,而是接着的都输出;因为
a=i%c;
if(a==0)
{
printf("%d\n",i);
c=i+1;
}
系统就把能被c整除的都输出
我是这样给你改的:
#include<stdio.h>
void main ()
{
int i=100,c,a,flag=1;
while(i<=200)
{
c=3;
while(c<i)
{
a=i%c;
if(a==0)
{
flag=0;
break ;
}
c+=2;
}
if(flag==1)
{
printf("%d ",i) ;
i++;
}
else
{
flag=1;
i++;
}

}
getch();
}
第4个回答  2010-04-18
if(a==0)
应该是if(a!=0)

求100到200之间的素数,用C语言编写 我写了下面的程序 哪位高手可以帮我...
void main (){ int i=100,c,a;while(i<=200){ c=2;while(c<=i)\/\/只要除到这个数的平方根就行了、{ a=i%c;\/*你这个绝对不行的,素数一般是要使用除的,而不是求余 比如 150不是素数。但是150%10=0 这个是求余*\/ if(a==0){ printf("%d\\n",i);c=i+1;\/\/在已经知道...

用C语言求100-200之间的素数
错误原因:循环结束之后,没有把s重新置为1,所以在判断完第2个素数之后第一个非素数后就不再输出了。例子如下:直接编译,程序输出结果如下图所示:

C语言求100-200的全部素数怎么写
}

用c语言编程将100~200之间的素数输出?
代码如下:include<stdio.h> int main(){ int i = 0;for (i=100; i<=200; i++){ int j = 0;for (j=2; j<=i-1; j++){ if (i%j == 0){ break;} } if (j>=i){ printf("%d",i);} } return 0;} 结果如下:...

C语言输出100-200的所有素数。大家帮我看看哪儿错了。
所以i一直是2,输出的一直是100~200之间的2的倍数,也就是偶数。这是我自己写的,用的是for语句,你喜欢while,也可以自己改成while的格式。include <stdio.h>int main(){int i,j;for(i=100;i<200;i++)for(j=2;j<=i;j++){ if(j\/i==1) printf("%d\\n",i); else if(...

c语言 调用函数,输出100到200之间的所有素数
素数是只有1和自身才能整除的数。调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出。举例代码如下:include "stdio.h"int prime(int n){\/\/判断100~200间的数是否为素数int i;if(!(n&1))return 0;for(i=3;i*i<=n;i+=2)if(!(n%i))return 0;return 1;}int main(int...

用c语言求出100到200之间的素数
int p[200]; \/\/是否素数 int main(){ int i,j;memset(p,0,sizeof(p)); \/\/假设全部素数 p[1] = 1; \/\/当然,排除1,1不是素数 for(i=2;i<=sqrt(200);i++) if(!p[i]) \/\/如果是i素数 for(j=i+i;j<=200;j+=i) if(!p[j]) \/\/i的倍数全不是素数 p[j] = 1;...

C语言写将100~200之间的素数输出
逻辑错误,准确位置为14行,正确代码如下:#include<stdio.h>int main(){int i = 0;for (i=100; i<=200; i++){int j = 0;for (j=2; j<=i-1; j++){if (i%j == 0){break;}}if (j>=i){printf("%d",i);}}return 0;} ...

c语言输出100到200之间的素数
首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。 先找出来100到200的所有整数,都为i 用i去对除了1和它本身以外的数求余。 正确的代码: #include<stdio.h> int main() { int conut = 0; int i = 0; for(i=100; i<=200;...

用C语言求100-200之间的素数
对于100至200之间的每个整数,我们可以通过逐一检验其是否为素数来找出所有的素数。以下是一个简单的C语言程序,它实现了这一功能。请注意,程序中的`is_prime`函数用于判断一个数是否为素数。```c include \/\/ 函数声明 int is_prime(int n);int main() { int n;for (n = 100; n < 200; ...

相似回答
大家正在搜