poniedziałek, 6 listopada 2017

00010 - 522 - Przedszkolanka - www.pl.spoj.com


Treść
W ostatnim czasie przedszkole opanowała nietypowa epidemia.
Nie dotknęła ona przedszkolaków, tylko panie opiekujące się
dziećmi. Pośród nielicznych zdrowych pozostała, ulubiona
przez wszystkie maluchy, pani Agnieszka. Postanowiła osłodzić
podopiecznym nieobecność wychowawczyń i rozdać im trochę
cukierków. Przedszkolanka wie, że następnego dnia będzie
się zajmowała jedną z dwóch grup. Zna też liczbę dzieci w
każdej z nich. Chce teraz dobrać taką liczbę słodyczy, by
można nią było obdarować wszystkie dzieci, niezależnie od
grupy, którą będzie prowadziła. Musi przy tym spełnić
kilka warunków. Po pierwsze, każdy z przedszkolaków powinien
otrzymać jednakową (oczywiście niezerową) liczbę cukierków.
Po drugie, liczba słodyczy powinna być taka, by można było
rozdać je wszystkie. Po trzecie, ponieważ budżet przedszkola
jest ograniczony, pani Agnieszka musi kupić minimalną liczbę
cukierków spełniającą dwa wcześniejsze warunki.
Pomóż sympatycznej przedszkolance i napisz program,
który obliczy, ile cukierków powinna kupić.


Wejście
Dane podawane są na standardowe wejście.
W pierwszym wierszu podana jest liczba N
(1<=N<=20) zestawów danych. Dalej podawane
są zestawy danych zgodnie z poniższym opisem:

Jeden zestaw danych
W pierwszym i jedynym wierszu zestawu danych znajdują się
dwie liczby całkowite a i b (10<=a,b<=30), oddzielone
pojedynczą spacją, oznaczające odpowiednio liczbę
przedszkolaków w grupach, z których jedna zostanie
przydzielona pani Agnieszce.

Wyjście

Wyniki programu powinny być wypisywane na standardowe
wyjście. W kolejnych wierszach należy podać odpowiedzi
obliczone dla kolejnych zestawów danych. Wynikiem dla
jednego zestawu jest liczba cukierków, jaką powinna
zakupić przedszkolanka.


Przykład

dane wejściowe:
2
12 15
11 22

wynik:
60
22

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 nww (int a, int b)
{
    return a*b/nwd(a,b);
}

int main()
{
    int N, a, b;
    scanf("%d", &N);
    while(N != 0)
    {
        scanf("%d %d",&a,&b);
        printf("%d\n",nww(a,b));
        --N;
    }
    return 0;
}


Kod źródłowy w C++:
#include <iostream>

using namespace std;

int nwd (int a, int b)
{
    int c;
    for(;b!=0;)
    {
        c=a;
        a=b;
        b=c%b;
    }
    return a;
}

int nww (int a, int b)
{
    return a*b/nwd(a,b);
}


int main()
{
    int N, a, b;
    cin>>N;
    while(N != 0)
    {
        cin>>a>>b;
        cout<<nww(a,b)<<endl;
        --N;
    }
    return 0;
}


Kod źródłowy w Python 2:
def nww(x,y):
    if x == y:
        return y
    if x < y:
        (x,y)=(y,x)
    c = y
    while True:
        y = y + c
        if y%x == 0:
            return y
N = int(raw_input(''))
for i in range(0, N, +1):
    data = (raw_input('')).split(' ')
    a = int(data[0])
    b = int(data[1])
    output = nww(a,b)
    print output


Kod źródłowy w Python 3:
def nww(x,y):
    if x == y:
        return y
    if x < y:
        (x,y)=(y,x)
    c = y
    while True:
        y = y + c
        if y%x == 0:
            return y
N = int(input(''))
for i in range(0, N, +1):
    data = (input('')).split(' ')
    a = int(data[0])
    b = int(data[1])
    output = nww(a,b)
    print (output)


Źródło:
http://pl.spoj.com/problems/PRZEDSZK/

Brak komentarzy:

Prześlij komentarz