题目描述
小通在数学课上学习了质数。他通过查询资料了解到:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)大于1的整数n,如果除了1和n外,没有其他的正约数,则称n为质数,也叫素数或不可约数,在质数定义里应该注意两个问题:首先,研究的领域是大于1的整数,所以1既不是质数也不是合数,其次,在质数范畴里2是唯一的一个偶质数,其余质数都是奇数。小通想要研究在某一个数字范围内所有质数的和,请你编写程序帮助小通进行计算。
输入格式
一行两个正整数n和m,代表范围的开始和结束(包括开始和结尾的数字)。
2 ≤ n ≤ m ≤ 1000。
输出格式
一行一个正整数,代表质数的和。
输入样例
2 100
输出样例
1060
这道题加上了素数这个概念,大家可以不像作者这样,用一个函数,但是不推荐。
#include<bits/stdc++.h>
using namespace std;
//质数函数
bool is_prime(int n){
//sqrt()函数是求平方根的函数
for(int i=2;i<=sqrt(n);i++) if(n%i==0) return false;
return true;
}
int main(){
int n,m,sum;
cin>>n>>m;
for(int i=n;i<=m;i++)
if(is_prime(i)) sum+=i;
cout<<sum;
}