【题目链接】
【题目考点】
1. 枚举
2. 质数
- 质数的因数只有1和它本身。
- 判断数a是否是质数:循环变量i从2开始循环到 a \sqrt{a} a,若存在a能整除的数字(即a的因数),那么a不是质数。否则a是质数。
bool isPrime(int a)//判断a是否是质数,已知a >= 2
{
for(int i = 2; i <= sqrt(a); i++)
{
if(a % i == 0)
return false;
}
return true;
}
【题解代码】
解法1:使用标志位
使用标志位isPrime记录i是否是质数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
bool isPrime;
cin >> a >> b;
for(int i = a; i <= b; ++i)
{
isPrime = true;
for(int j = 2; j <= sqrt(i); ++j)
{
if(i % j == 0)
{
isPrime = false;
break;
}
}
if(isPrime)
cout << i << endl;
}
return 0;
}
解法2:使用函数
isPrime函数判断i是否是质数
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int a)
{
for(int i = 2; i <= sqrt(a); ++i)
{
if(a % i == 0)
return false;
}
return true;
}
int main()
{
int a, b;
cin >> a >> b;
for(int i = a; i <= b; ++i)
{
if(isPrime(i))
cout << i << endl;
}
return 0;
}