2030:【例4.16】找素数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 7847 通过数: 4817
【题目描述】
输出正整数a到b之间的所有素数。
【输入】
输入a,b。
【输出】
由小到大,输出a到b之间的所有素数。每个数占一行。
【提示】
【数据范围】
对于所有数据,1≤a≤b≤20000。
分析:
1.先使用循环遍历a到b的所有数字,然后在这个循环体里面进行素数判断;
2.素数:
3.再使用一个循环判断一个数 i 是否是素数,当然,我们很自然会想到从2开始循环到 i-1,看i对其取模是否等于0,等于0就不是素数。但其实我们可以把这个范围进一步缩小,从1到 根号i 即可(这个可以自己想一下,或者去百度如何判断素数)。
4.设置一个bool变量,初始值为真,如果判断不是素数,就将其置为假,然后符合条件的数进行输出。
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int a = 0, b = 0;
cin >> a >> b;
for (int i = a; i <= b; ++i)
{
bool x = true;
for (int j = 2; j * j <= i; ++j)
{
if (i % j == 0)
{
x = false;
break;
}
}
if (x&&i!=1)
{
cout << i <<endl;
}
}
}