新的学期从一篇打印素数开始···
既然要打印素数,那自然要知道素数是啥,素数的概念就是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
那可以想一下,怎样可以查找到哪些素数呢?
很简单,我们只需要用这个数去和除了1和它本身以外的数做除法,只要是有其他的数存在,那说明它就不是素数。那要把所有的数都除一遍吗?当然不是,只需要除到这个数的平方根就可以知道它是不是素数了。按照这个思路,可以写出下面的代码。可以用一个标记要记录这个数是不是素数,是就输出出去。
#include <iostream>
#include <math.h>
using namespace std;
//打印100—200之间的素数
//素数--->只能被1和它本身整除
int main()
{
for (int i = 100; i < 200; i++)
{
int flag = 0;
for (int j = 2; j < sqrt(i); j++)
{
if (i % j == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
cout << i << " ";
}
}
return 0;
}
那可以不可以不用标记,更简单一点呢?
我把它优化了一下,就如下面的代码,当比当前数的平方根还要大的数,那自然是素数可以直接输出了。
int main()
{
int j = 0;
for (int i = 100; i < 200