Mam taki problem: ten kod działa, ale czasami się myli :) Czy moglibyście mi podać przykład, dla którego ten kod nie działa, żebym mógł go poprawić?
#include <iostream>
using namespace std;
int NWD(long long int a, long long int b)
{
int c=0;
while (b!=0)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int NWW(long long int a, long long int b)
{
int wynik;
wynik=a*b/NWD(a,b);
return wynik;
}
int main() {
long long int lwierszy, lliczb, wczytana, najwieksza, nww;
cin >> lwierszy;
for (; lwierszy!=0; lwierszy=lwierszy-1)
{
cin >> lliczb;
cin >> nww;
najwieksza=nww;
for (lliczb=lliczb-1; lliczb!=0; lliczb=lliczb-1)
{
cin >> wczytana;
if (wczytana>najwieksza) najwieksza=wczytana;
nww=NWW(nww, wczytana);
}
if (nww==najwieksza)
nww=nww*2;
cout << nww << endl;
}
}
Na wejściu jest ilość wierszy wejścia, w kolejnych wierszach jest liczba wszystkich dzielników właściwych liczby i wypisane te dzielniki.
Przykładowe wejście:
3
1 2
2 4 2
6 3 4 2 12 6 8
Wyjście:
4
8
24
Dzięki!