洛谷B3840 [GESP202306 二级] 找素数
题目来源
B3840 [GESP202306 二级] 找素数 - 洛谷
题目描述
小明刚刚学习了素数的概念:如果一个大于 1 的正整数,除了 1 和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数 A 和 B 之间(包括 A 和 B)有多少个素数。
输入格式
输入只有一行两个正整数 A,B。约定 2≤A≤B≤1000。
输出格式
输出一行,包含一个整数 C,表示找到 C 个素数。
输入输出样例
输入 #1
2 10
输出 #1
4
输入 #2
98 100
输出 #2
0
说明/提示
【样例解释】
在 2 和 10 之间有 4 个素数,分别为:2、3、5、7
算法分析
首先这是一道模版题,考察素数函数的写法
素数的定义
一个大于 1 的正整数,除了 1 和它自身两个因数,没有其他因数,这样的数叫做素数(也叫质数)
所以我们在函数里写一个for循环
看它有没有其他因数
Code
#include <bits/stdc++.h>
using namespace std;
bool isprime(int n){if(n<2) return 0;for(int i=2;i<=sqrt(n);i++){if(n%i==0){return 0;}}return 1;
}
int main() {int a,b;cin>>a>>b;int sum=0;for(int i=a;i<=b;i++){if(isprime(i)) sum++;}cout<<sum;return 0;
}