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, i . 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 i , és a dir, tots els nombres que compleixin simultàniament:
Són enters estrictament positius.
Són menors o iguals que i que .
Divideixen de forma exacta tant a com a (és a dir, el residu de la divisió és zero).
Exemples d'execució:
Si i , la sortida ha de ser: 1 5 25
Si i , la sortida ha de ser: 1 2 3 4 6 12
Si i , la sortida ha de ser: 1
Escriviu un codi estructurat, clar i acompanyat de comentaris aclaridors.

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 ›