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

Realizaţi următoarele cerinţe utilizând limbajul C/C++:
a) Scrieţi definiţia completă a unei funcţii produs cu un parametru, funcţie care:
• primeşte prin intermediul parametrului a un număr natural cu cel mult 8 cifre (a>1);
• returnează produsul divizorilor primi ai valorii parametrului a.
De exemplu, pentru valoarea 300 a parametrului a, funcţia va returna valoarea 30 deoarece a=22*3*52 şi 2*3*5=30.
b) Scrieţi programul în care se citesc de la tastatură numerele naturale nenule a,b şi c de cel mult 8 cifre fiecare şi în care se verifică dacă numerele citite au exact aceiaşi factori în descompunerea lor în factori primi, folosind apeluri ale subprogramului produs. Dacă cele trei numere au exact aceiaşi factori (exponenţii lor putând să difere), programul va afişa pe ecran mesajul DA, în caz contrar va afişa mesajul NU.
De exemplu, dacă a=300, b=1500 şi c=30, atunci se va afişa mesajul DA, iar pentru numerele a=300, b=700 şi c=140, se va afişa mesajul NU.

Răspunsuri la întrebare

Răspuns de Voli04
4
#include <iostream>
using namespace std;int produs(int n){int d, p;bool ok;    d = 2; p = 1;    while(n != 1)    {        ok = false;        if(d * d > n) {p = p * n; n = 1;}        while(n % d == 0)        {            n = n / d;            ok = true;        }        if(ok) p *= d;        d++;    }    return p;}int main(){    int a, b, c;    cin >> a >> b >> c;    if(produs(a) == produs(b) && produs(a) == produs(c)) cout << "DA";        else cout << "NU";}
Alte întrebări interesante