👤

#1539 pbinfo
Cerința
Scrieţi în limbajul C/C++ definiţia completă a subprogramului apartenenta, care primeşte ca argument un număr natural nenul n şi returnează valoarea 1 dacă n aparţine mulţimii H={2^x⋅3^y⋅5^z | x,y,z∈N}, respectiv 0 în caz contrar.

Restricții și precizări
1 ≤ n ≤ 109
Exemple
apartenenta(180) = 1
apartenenta(385) = 0

Notă
Puteţi defini şi alte subprograme care vă ajută să rezolvaţi mai uşor problema.


Răspuns :

#include <math.h>

using namespace std;

int aparenta(int n) {

int x, y, z;

for (x = 0; x < 10; x++) {

 for (y = 0; y < 10; y++) {

  for (z = 0; z < 10; z++) {

   if (pow(2, x)*pow(3, y)*pow(5, z) == n) return 1;

  }

 }

}

return 0;

}

int apartenenta(int n)

{

while(n%2==0)

{  

n/=2;

}

while(n%3==0)

{

n/=3;

}

while(n%5==0)

{

n/=5;

}

if(n==1)

return 1;

return 0;

}