Tema 1054: Lenguaje C de nivel 2: cálculo de la suma de números primos

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;
}

Supongo que te gusta

Origin blog.csdn.net/qq_63999224/article/details/132927917
Recomendado
Clasificación