/*
打印100-200之间的素数
*/
//思路:
//素数的定义是指除1和它本身外,不能被任何整数整除的数;
//0和1都不是质数;
//判断一个数是不是素数:
//1.可以用从2到n - 1的数依次试一试能否整除n;
//若存在能整除n的数,则n不是素数;反之,n是素数;
//2.基于1的思路,取n的平方根sqrt;
//由此可知,若在2到sqrt,不存在能整除n的数;
//那么在sqrt到n-1,也不存在能整除n的数;
//因为若在2到sqrt,存在能整除n的数;
//则在sqrt到n-1,必然存在一个能整除n的数与之对应.
//找素数函数
void find_prime(){
int n = 100; //变量n初始化为100
int Sqrt; //变量Sqrt用以保存求一个数的平方根的结果
int i; //变量i用以遍历所有可能的除数
while (n <= 200){ //当n小于200
Sqrt = sqrt(n); //将n的平方根赋值给Sqrt
for (i = 2; i <= Sqrt; ++i){ //循环遍历尝试所有可能除数
if (n % i == 0){ //若存在能整除n的除数
break; //跳出循环
}
}
if (i > Sqrt){ //若i大于Sqrt(即不存在能整除n的除数)
printf("%d是素数\n", n); //打印输出结果
}
++n; //n加1(即n向200靠拢)
}
}
//主函数
int main(){
find_prime(); //调用找素数函数
system("pause");
return 0;
}