Informatică, întrebare adresată de lavinianiorba51, 8 ani în urmă

Buna ! Definiți funcția

void FRadical(int n, int &x, int &y)
cu parametrii:

n, prin care primește un număr natural din intervalul [1, 1.000.000.000]
x și y – două numere naturale care se determină, cu proprietatea că x2 * y = n, iar x este maxim posibil

Exemplu
În urma apelului FRadical(15000, x, y), se obține x = 50, y = 6.

Rezolvarea mea (40 puncte)
https://pastebin.com/73txSWbw

Multumesc !

Răspunsuri la întrebare

Răspuns de ProMinecraft69
1

Răspuns:

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

void FRadical(long long n, int & x, int & y) {

   long long z;

   float l;

   bool gasit = 0;

   y = 1;

   while (!gasit) {

       z = n;

       if (z % y == 0) {

           z = z / y;

           l = sqrt(z);

           if (l == int(l)) {

               gasit = 1;

               break;

           }

           y++;

       } else y++;

   }

   x = l;

}

Explicație:


lavinianiorba51: Multumesc !
Alte întrebări interesante