寻找出100~300之间的所有素数,输出时每行打印10个素数
提示:判断一个整数n是否为素数,只需将它除以2~n-1(或2~ 根号n)内的所有整数。如果都不能整除,则n是素数。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int count = 0;
bool a = true;
for (int i = 100; i <= 300; i++)
{
a = true;
for ( int k = 2; k <= sqrt(i); k++)
{
if (i % k == 0)
{
a = false;
break;
}
}
if (a)
{
cout << i<<" ";
count += 1;
if (count % 10 == 0)
cout << endl;
}
}
}
首先需要用到根号这个函数,需要调用相应的库。
必要的是一个计数器count,这个计数器真的很好用。
接下来比较重要的是定义一个bool变量来定义一个a,用于判断是否是素数。
然后就是经典的for循环,判断i是不是素数,是就输出,不是就跳出循环。
需要注意的是一次break跳出后,别忘了再把a默认成true,不然啥也输出不出来。
当然,这种算法是最简单易懂也是运算量最大的,有更好的思路完全不建议这么写。建议去看看其他更详细的帖子