Problema 2 · Programació I UDL 2022

Tema: Bucles i disseny iteratiu · Del examen Examen Primer Parcial (Novembre 2022) (2022)

Enunciado

Problema 2 (3,5 punts). Càlcul dels divisors comuns de dos enters positius

Dissenyeu un programa en llenguatge C++ que demani per teclat dos nombres enters positius, a>0a > 0 i b>0b > 0. En cas que l'usuari introdueixi un valor negatiu o zero, cal mostrar un missatge d'error i tornar a sol·licitar la introducció de les dades fins que siguin correctes.

Un cop validats els valors, el programa ha d'imprimir per pantalla tots els divisors comuns de aa i bb, és a dir, tots els nombres que compleixin simultàniament:

Són enters estrictament positius.

Són menors o iguals que aa i que bb.

Divideixen de forma exacta tant a aa com a bb (és a dir, el residu de la divisió és zero).

Exemples d'execució:

Si a=25a = 25 i b=125b = 125, la sortida ha de ser: 1 5 25

Si a=24a = 24 i b=36b = 36, la sortida ha de ser: 1 2 3 4 6 12

Si a=25a = 25 i b=81b = 81, la sortida ha de ser: 1

Escriviu un codi estructurat, clar i acompanyat de comentaris aclaridors.

Enunciado: Problema 2 · Programació I UDL 2022

Solución

Según los criterios oficiales de corrección

Problema 2 (3,5 punts). Càlcul dels divisors comuns de dos enters positius

Solución: ```cpp #include <iostream> using namespace std; int main() { int a, b; // Validació de l'entrada del primer enter 'a' do { cout << "Introdueix un enter positiu a: "; cin >> a; if (a <= 0) { cout << "Error: el nombre ha de ser estrictament positiu." << endl; } } while (a <= 0); // Validació de l'entrada del segon enter 'b' do { cout << "Introdueix un enter positiu b: "; cin >> b; if (b <= 0) { cout << "Error: el nombre ha de ser estrictament positiu." << endl; } } while (b <= 0); // Càlcul del menor dels dos valors per optimitzar el rang de cerca int minim = (a < b) ? a : b; // Cerca i impressió dels divisors comuns for (int i = 1; i <= minim; i++) { if (a % i == 0 && b % i == 0) { cout << i << " "; } } cout << endl; return 0; } ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Problema 1 · 2022 · Problema 3 · 2022 ›

Más ejercicios de Bucles i disseny iteratiu