Ingrese dos enteros positivos myn (m<n), encuentre la suma de todos los números primos entre myn ( incluidos myn) y defina y llame a la función isprime(x) para determinar si x es un número primo ( un número primo se divide por Un número natural distinto de 1 que sólo es divisible por sí mismo).
Formato de entrada
Minnesota
Formato de salida
suma prima
Entrada de muestra
2 3
Salida de muestra
5
Mi código: (no hay funciones escritas)
La definición de número primo es un número que sólo es divisible por 1 y por sí mismo ( 1 no es un número primo , presta atención a esto)
Entonces defina un bucle de dos capas: for->for bucle for de doble capa. Tenga en cuenta que la capa exterior se ejecuta una vez y la capa interior está completamente en bucle.
-》La capa exterior es a a b como los números a dividir, y la capa interior es como el divisor (cuando i%j==0 significa, un número distinto de 1 y por sí mismo puede dividir i--》i es un número no primo
break rompe todos los bucles en esta capa , continuar es solo la variable +1 en esta capa
#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;
}