Informatică, întrebare adresată de ionelaiona, 9 ani în urmă

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


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.

Răspunsuri la întrebare

Răspuns de express
1
int minDivPrim(int n)
{
    int d, fm, nr = 1;
    d=2;
    do
    {
        fm=0;
        while(n%d==0)
        {
            fm=fm+1;
            n=n/d;
        }
        if(fm>0) nr = nr * d;
        d=d+1;
        if(n>1 && d*d>n) nr = nr * n, n=1;
    } while(n>1);
 return nr;
}

Alte întrebări interesante