fbpx

Problema #3118 – TortO – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Un tort dreptunghiular de dimensiuni MxN trebuie împărţit în porţii pătrate de aceeaşi mărime. Găsiţi numărul minim de porţii care se pot obţine şi dimensiunea L a acestora. Atât dimensiunile dreptunghiului cât şi ale pătratelor în care se împarte sunt numere întregi.

Date de intrare

Fişierul de intrare tort.in va conţine pe prima linie numerele M şi N separate printr-un spaţiu.

Date de ieșire

Fişierul de ieşire tort.out va conţine pe o singură linie, două numere naturale separate printr-un spaţiu, primul fiind numărul minim de porţii, iar celălalt dimensiunea L.

Restricții și precizări

  • 1 ≤ M ≤ N ≤ 10000

Exemplu

tort.in

20 24

tort.out

30 4
#include <bits/stdc++.h>
using namespace std;

ifstream cin("tort.in");
ofstream cout("tort.out");

int cmmdc(int a, int b){
    while(b){
        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int main(){
    int n, m;
    cin >> n >> m;
    int prod = n * m;
    int cm = cmmdc(n, m);
    cout << prod / (cm * cm) << ' ' << cm;
    return 0;
}
Comentarii

S-ar putea sa iti placa