洛谷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 
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<

你可能感兴趣的:(信息学奥赛,素数,循环,算法)