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

来源:百度知道 编辑:UC知道 时间:2024/06/19 10:22:48
谁能告诉我下怎么写,不要光给答案能不能给点讲解?谢谢!!

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是素数。

//求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);
}
}

首先了解什么是素数,
素数只能被 1 和它本身所能整出呃数
既然你是求100——200之间的素数
首先做一个for循环,是从100——200的(i=100;i<=200;i++)
在做一个内循环,是从2到外循环的数,然后判断能否呗整出
(j=2;j<i;j++)
思路是这样的 我给你写一下程序
main()
{
int i,j;
for(i=100;i<=200;i++)
{