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

Odpowiedz Nowy wątek
2019-08-15 17:09
0

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

#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;
}
edytowany 3x, ostatnio: cerrato, 2019-08-15 19:26
2019-08-15 17:17
sig
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;

Jak mam go zapamiętać poza forem ? - ruffneckhyhy 2019-08-15 17:18
Dodatkową zmienną, możesz też umieścić int i przed nim. Swoją drogą przenieś int a, b do main, i zamień na int a=0, b= 0, wynik =0 albo int a = 0 , b = 0 , i = 0, w tym ostatnim przypadku w for int już oczywiście nie piszesz - sig 2019-08-15 17:20

Pozostało 580 znaków

2019-08-15 17:31
1

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


przypuszczam że to jeszcze nie jego poziom, aczkolwiek diabli wiedzą czy ciągle na matmie tego uczą. - sig 2019-08-15 17:34
ALgorytmy na kilka linijek, mozna sobie na kartce rozpisać... - lion137 2019-08-15 17:35
Nie przesadzajmy z tym poziomem. NWD to chyba najprostszy algorytm w całym IT. Można go liczyć z ołówkiem w ręku. - vpiotr 2019-08-15 20:55

Pozostało 580 znaków

2019-08-15 18:31
2

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

#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;
}

Wole wizerunek z nożem w zębach, przejść po trupie
Niż zgrywać ćwierćinteligenta z piórkiem w d.
edytowany 1x, ostatnio: tajny_agent, 2019-08-15 18:33

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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