Algorytm Euklidesa

0

Witam, chciałem zaimplementować algorytm Euklidesa w moim programie. Niestety za każdym razem program zwraca wartość 0.

#include <iostream>
#include <conio.h>

using namespace std;
int liczba_1; int liczba_2; int wynik;
int main()
{
cout << "Wpisz dwie liczby" << endl;
cin >> liczba_1;
cin >> liczba_2;
while ((liczba_1 =! liczba_2))
{
if (liczba_1 < liczba_2)
{
wynik = liczba_2 - liczba_1;
if (wynik == 0)
{
break;
}
wynik = liczba_2;
cout << liczba_2 << endl;
}
else
{
wynik = liczba_1 - liczba_2;
if (wynik == 0)
{
break;
}
wynik = liczba_1;
cout << liczba_1 << endl;
}
}
cout << liczba_1 << endl;
getch();
return 0;

0
while ((liczba_1 =! liczba_2))

Operator różności to !=.

Tu wynik = liczba_2; i tu wynik = liczba_1; chyba powinno być na odwrót: za większą liczbę podstawiamy wynik odejmowania.

Ogólnie polecam wersję z modulo.

0

Przecież ten algorytm jest na Wikipedii, wystarczy przepisać, juz chyba prostszego nie Znajdziesz:

function gcd(a, b)
    while a ≠ b 
        if a > b
           a := a − b; 
        else
           b := b − a; 
    return a;

Dodałeś zmienną wynik, porównania do zera, nie prościej to napisać jak powyżej?

1 użytkowników online, w tym zalogowanych: 0, gości: 1