C++ obliczanie największego współnego dzielnika

C++ obliczanie największego współnego dzielnika
RU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Próbuje stworzyc program aby wyszedl tylko wpólny dzielnik najwiekszy, jak mam zrobic zeby wypisalo tylko go a nie wszystkie dzielniki wspolne?

Kopiuj
#include

using namespace std;

int a, b;
int main()
{
    cin >> b;
    cin >> a;
    for (int i = 1; i <= a; i++) {
        if (a % i == 0)
            if (b % i == 0)
                cout << i << endl;
    }
    return 0;
}
SI
  • Rejestracja: dni
  • Ostatnio: dni
1

Zapamiętuj go gdzieś i wypisz poza for-em, albo też zacznij od i = a i idź w dół. Wtedy po trafieniu przerywasz for-a komendą break;

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5027
1

Są też trochę bardziej cywilizowane:) metody liczenia gcd:
https://en.wikipedia.org/wiki/Euclidean_algorithm

tajny_agent
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1340
2

W C++17 masz gotową funkcję dostępną w <numeric>: std::gcd

Kopiuj
#include <numeric>
#include <iostream>

int main(int, char**)
{
  int a, b;
  std::cin >> a;
  std::cin >> b;
  std::cout << "Najwiekszy wspolny dzielnik: " << std::gcd(a, b) << '\n';
  return 0;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.