Witam, mam do napisania program obliczający sumę wszystkich NWD.
Program ma pobierać liczby naturalne, jeżeli jest to 1 to liczy NWD 2 ostatnich wprowadzonych liczb różnych od 1, gdy wpiszemy 0
program wypisuje sumę wszystkich NWD i kończy działanie.
Np.
Wejście:
5 5 1 1 4 2 1 0
Wyjście:
12
Napisałem program ale niestety nie działa jak powinien proszę o pomoc w naprawieniu go
#include <iostream>
using namespace std;
int main()
{
int number, n, a, b, s, suma = 0;
for(int i = 0; i < 1000000000; i++)
{
cin >> n;
if(n == 0)
{
cout << suma;
break;
}
cin >> s;
if(s == 0)
{
cout << suma;
break;
}
if(n != 1 && s != 1 && n != 0 && s != 0)
{
a = n;
b = s;
}
if(n == 1)
{
while(a != b)
{
if(a < b)
{
b -= a;
}
else
{
a -= b;
}
}
suma = suma + a;
}
if(s == 1)
{
while(a != b)
{
if(a < b)
{
b -= a;
}
else
{
a -= b;
}
}
suma = suma + a;
}
}
system("pause");
return 0;
}