Męczę się już mnóstwo czasu z zadaniem:
Napisz program który dla zadanych dwóch liczb naturalnych a i b oblicza ich NWD oraz NWW.
Format wejścia:
Pierwsza linia wejścia zawiera liczbę naturalną z - liczbę zestawów danych. Za nią znajduje się z par liczb ai , bi .
1 ≤ ai ,bi ≤ 1000000.
Format wyjścia:
Dla każdego zestawu danych wypisz dwie liczby oddzielone spacją - NWD(ai ,bi )
oraz NWW(ai ,bi ).
Przykład:
Dla danych wejściowych:
3
4 6
2 4
5 8
Poprawną odpowiedzią jest
2 12
2 4
1 40
Mógłby ktoś spojrzeć i pomóc co może być nie tak ?
Mój kod:
#include <iostream>
using namespace std;
void NWD2(int a, int b)
{
int c, a0 = a, b0 = b;
while (b != 0)
{
c = a%b;
a = b;
b = c;
}
cout << a << " " << (long long int)(a0 / a) * b0 << endl;
}
int main()
{
int z;
cin >> z;
int **tab = new int*[2];
for (int i = 0; i < z; i++)
{
tab[i] = new int[2];
cin >> tab[i][0] >> tab[i][1];
}
for (int i = 0; i < z; i++)
{
NWD2(tab[i][0], tab[i][1]);
}
return 0;
}
dodanie znaczników <code class="cpp">
- @furious programming