Informatică, întrebare adresată de Ouroboros, 9 ani în urmă

C++
#61


Cerinţa

Să se scrie un program care afișează divizorii comuni ai două numere naturale citite de la tastatură.
Date de intrare

Programul citește de la tastatură două numere naturale a și b.
Date de ieşire

Programul afișează pe ecran, în ordine crescătoare, divizorii comuni ai numerelor a și b, separați printr-un spațiu.
Restricţii şi precizări

0 < a, b < 1.000.000.000

Exemplu1:

Intrare

24 36

Ieșire

1 2 3 4 6 12

Răspunsuri la întrebare

Răspuns de MihaiChirculete
0
#include <iostream>

using namespace std;

int main()
{
    long a, b, min;

    cout << "Introduceti a: "; cin >> a;
    cout << "Introduceti b: "; cin >> b;

    if(a>b) min = a;
    else min = b;

    cout << "Divizorii comuni sunt: ";
    for(int i=1; i<min/2; i++)
        if(a%i==0 && b%i==0)
            cout << i << " ";

    return 0;
}

Ouroboros: Multumesc dar dn nefericire problema nu este corecta in pentru unele cazuri, si depaseste limita de timp admisa de teste
MihaiChirculete: Cu placere. Pentru ce cazuri nu este corecta
MihaiChirculete: ??
MihaiChirculete: Incearca acum, am schimbat maxim cu minim. Ar trebui sa dureze mai putin.
ionelamaria92: am rezolvat-o si eu asa, doar ca in loc sa gasesc minimul am facut interschimbare intre a si b, daca a era mai mare, dar tot imi depaseste limita de timp la 1 si iau doar 90 de puncte
ionelamaria92: ati gasit raspunsul de 100 ?
Alte întrebări interesante