Napisz funkcję:
int nwd(int a, int b);
która oblicza największy wspólny dzielnik liczb a i b,
0 <= a,b <= 1000000
Input
W pierwszej linii liczba testów t, w kolejnych liniach po dwie liczby w każdym wierszu.
Output
W każdej linii jedna liczba - wynik działania funkcji nwd
Example
Input:
5
1 4
4 1
12 48
48 100
123456 653421
Output:
1
1
12
4
3
Kod źródłowy w C:
#include <stdio.h> #include <stdlib.h> int nwd (int a, int b) { int c; for(;b!=0;) { c=a; a=b; b=c%b; } return a; } int main() { int i, j=0,a,b; scanf("%d",&i); for(j;j<i;++j) { scanf("%d %d",&a,&b); printf("%d\n",nwd(a,b)); } return 0; }
Kod źródłowy w C++:
#include <iostream> #include <cstdio> using namespace std; int nwd (int a, int b) { int c; for(;b!=0;) { c=a; a=b; b=c%b; } return a; } int main() { int i, j=0,a,b; cin>>i; for(j;j<i;++j) { cin>>a>>b; cout<<nwd(a,b)<<endl; } return 0; }
Źródło zadania:
http://pl.spoj.com/problems/PP0501A/
Brak komentarzy:
Prześlij komentarz