Suma dwóch liczb naturalnych dodatnich jest równa 777. Jaka największą wartość może
przyjąć ich największy wspólny dzielnik?
Mnie wyszło, że 37. Zrobiłam to jednak nieco chaotycznie, dlatego proszę o pomoc w rozwiązaniu.
nwd z informacją o sumie
-
gryxon
- Użytkownik

- Posty: 311
- Rejestracja: 30 gru 2011, o 02:21
- Płeć: Mężczyzna
- Lokalizacja: Puławy
- Podziękował: 11 razy
- Pomógł: 53 razy
nwd z informacją o sumie
\(\displaystyle{ NWD(259,518)=259}\)
To jest największy.
Koniec dowodu? ;p
Jak to ładnie zrobić?
To jest największy.
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int max(int a, int b){
if(a>b)return a;
else return b;
}
int nwd(int a, int b){
if(b==0)return a;
else return nwd(b,a%b);
}
int main() {
int maxi = 0;
for(int i = 1; i<=776;++i){
maxi=max(nwd(i,777-i),maxi);
}
cout << maxi;
return 0;
}Jak to ładnie zrobić?
-
Hydra147
- Użytkownik

- Posty: 268
- Rejestracja: 31 mar 2013, o 20:23
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 1 raz
- Pomógł: 82 razy
nwd z informacją o sumie
Niech \(\displaystyle{ NWD(x,y)=d}\) oraz \(\displaystyle{ x+y=777}\). Mamy zatem \(\displaystyle{ d|x}\) i \(\displaystyle{ d|y}\) czyli \(\displaystyle{ d|x+y=777}\). Największym dzielnikiem liczby 777 mniejszym od niej samej jest oczywiście 259 i jest on osiągalny np. dla \(\displaystyle{ x=518}\) oraz \(\displaystyle{ y=259}\).
nwd z informacją o sumie
Faktycznie, pominęłam 259. Dziękuję bardzo za ładne wyjaśnienia. Zwłaszcza Hydra147.

