输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
输入格式
m n
输出格式
素数和
样例输入
2 3
样例输出
5
我的代码:(没写函数)
素数的定义是能只有能被1和自身整除 的数(1不是素数,注意这个)
所以定义两层循环:for->for双层for循环,注意外层执行1次,内层全部循环完。
-》外层是a到b作为被除的数,内层作为除数(当i%j==0表示,非1和本身的数能整除i--》i是非素数
break打破跳出本层所有 循环,continue只是本层的变量+1
cpp
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int a, b;
cin >> a >> b; //输入两个数
bool isPrime = true;
int sum = 0;
for (int i = a; i <= b; i++) { //计算a到b之间素数的和
isPrime = true;
for (int j = 2; j <=sqrt(i); j++) { //若从2到本身i能被整除 那就 不是素数
if (i % j == 0) {
isPrime = false;
break; //?break跳出j所有循环,而continue只是j++(如果后面有语句不执行)
}
}
if (i == 1)
continue;
else if (isPrime)
sum += i;
}
cout << sum;
return 0;
}