c语言输出100到200之间的素数

#include<stdio.h>
int main()
{ int i=100,n=2;
{for(i;i<=200;i++)
{for(n;n<i;n++)
{if(i%n==0)
break;
}
if(i%n==0) printf("%d\n",i);
}
}
return 0;
}
我要求100到200之间的素数 为什么这个函数不行

第1个回答  2011-09-22
#include <stdio.h>
#include <math.h>
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
for (i=2; i<=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}
int main(void)
{
int i,j=0;
for (i=100; i<=200; i++)
if(ss(i))
{
j++;
printf("%5d",i);
if (j%5==0) printf("\n");
}
// printf("\ntotal prime=%d\n",j);
return 0;
}
第2个回答  2008-10-03
bool shs(const int A)
{//判断A是否为质数,是的话返回true.
if((A==2)||(A==3))
return true;
if(A<=1)
return false;
int a;
for(a=2;a<=sqrt(A)+1;a++)
{
if(A%a == 0)
return false;
if(a == sqrt(A)+1)
return true;
}
}

1不是素数,2和3是素数,如果一个整数A,能被2到根号下A之间的整数整除,那么A不是素数,反之A是素数。
第3个回答  2008-10-03
//求100到200之间的素数输出
for (int i = 101; i < 200; i += 2)
{//素数一定是奇数,所以在此只验证奇数
int j = 3;
for (; j < i / 2; j += 2)
{//因为奇数一定不能被偶数整除,在次只要验证有没有被其它奇数整除
if (i % j == 0)
break; //d当被其它数整除时,跳出循环
if (j >= i / 2) //此时说明没有能整除它的数
printf("%d\n",i);
}
}
第4个回答  2011-09-22
#include "stdio.h"
#include "math.h"
main()
{
int i,j;
printf("100~200所有的素数为:\n");
for(i=100;i<200;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
break;
if(j>sqrt(i))
printf("%d ",i);
}
}
第5个回答  2015-10-16
#include <stdio.h>
int main()
{
int i,n;
for(i=100;i<200;i++)
{

for(n=2;n<i;n++)

if(i%n==0) break;
if(n==i) printf("%d",i);
}

return 0;
}
相似回答