Bootstrap

C语言实现:素数的判断的多种方法

●问题描述:输出100~200之间的素数
●思路:谋定而后动。何谓素数?素数就是除了1和它本身,不会被其余任何数整除的数,这就叫素数。那么,我们只需要拿2~n-1一个个去试除n了。如果没有一个数能被整除,则说明这个数是素数。程序设计如下:

#include <stdio.h>
int main()
{
	int i;
	int j;
	for (i = 100; i <= 200;i++)//生成1~200的数字
	{
		//生成了数字以后,就要判断这个数是不是素数。如果要判定一个数为素数,就拿2~i-1依次去除这个数
		for (j = 2; j <=i; j++)//生成2~i-1的数
		{
			if (i % j == 0)//如果在这个期间,被整除了,则说明这个数不是素数
			{
				break;//被整除则跳出for循环
			}
		}
		//程序执行到这里,有两种情况,一种是这个数在期间被整除了,break跳出来,另一种是j生成到了等于i,自动结束循环了。当j=i的时候,说明这个期间都没一个数能够整除,除了这个数本身。
		if (i == j)
		{
			printf("%d ", i);//输出素数
		}
	}
	return 0;
}

●该程序还能够进一步优化。
●思路:m=a*b,a和b中至少有一个数是小于等于开平方m的,那么,判断素数就只需要从2~它的开平方进

;