c语言求100以内的素数思想

#include<stdio.h>
void main()
{ int t,i,j,s;

for(i=3;i<=100;i++)
{t=1;
for(j=2;j<=i;j++)
if(i%j==0)
t=0;

if(t==1)
printf("%d ",i);
}
} 怎么不对啊

#include<stdio.h>
#include<math.h>
void main()
{int m,k,i,;
bool prime;//定义布尔变量prime
for(m=2;m<=100;m=m+2)//判别m是否为素数,m由2变化到100,增量为2
{prime=true;//循环开始时设prime为真,即先认为是素数
k=int (sqrt(m));//用k代表根号m的整数部分
for(i=2;i<=k;i++)
if(m%i==0)
{prime=false;
break;
}
printf("%d",m);
}
判别m是否为素数的算法是这样的:让m被2~根号m除,如果m不能被2~根号m之中任何一个整数整除,就可以确定m是素数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-23
#include<stdio.h>
void main()
{
int t,i,j,s;

for(i=2;i<=100;i++) //要从2算起,因为2也是素数
{
t=1;
for(j=2;j<i;j++) //j不要增加到i
if(i%j==0)
t=0;

if(t==1)
printf("%d ",i);
}
}本回答被提问者采纳
第2个回答  2012-03-23
重新给你写了一个 思路清晰一点:
#include "stdio.h"
#include "conio.h"

int isShuShu(int n)
{
int i=1;
for(i=2;i<=(int)n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}

main()
{
int j=0;
for(j=1 ;j<=100;j++)
{
if(isShuShu(j))
{
printf("%d\n",j);
}
}

getch();
}

你看一下。main里面的for循环就是逐一判断1-100这些书是不是素数。
判断的函数是isShuShu();

判断素数的思路:
例如数n,我们用2,3,4,5……n/2 逐一去除他。一旦发现有约数。那么这个数肯定不是素数。返回0(False).否则2,3,4,5,一直到他的一半都不能除,证明只有1,和自身能整除,所以他是素数。返回1.(TRUE)
第3个回答  2012-03-23
for(j=2;j<i;j++)
相似回答