# PBinfo #1745 – minDivPrim – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Subprogramul minDivPrim are un singur parametru, n, prin care primeşte un număr natural. Subprogramul returnează cel mai mic număr natural care are aceiași divizori primi ca n. Scrieţi definiţia completă a subprogramului.

Restricţii şi precizări

numele subprogramului va fi minDivPrim
1 < n < 1.000.000.000

Exemplu
Dacă n=75, subprogramul returnează numărul 15, iar dacă n = 7, subprogramul returnează numărul 7.

Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
int minDivPrim(int n) {
    int rez = 1, d = 2;
    while (n > 1) {
        if (n % d == 0) {
            rez = rez * d;
            while (n % d == 0)
                n = n / d;
        } d++;
        if (d * d > n) d = n;
    } return rez;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1745)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1745/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1745/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
