#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ăspunsuri la întrebare
Răspuns de
1
#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;
}
andrei750238:
Nota : Daca nu putem folosi math.h, vom face o functie care va calcula puterea.
{
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;
}
Răspuns de
1
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;
}
int v[] = {2, 3, 5};
for(size_t i = 0; i < 3; i++)
while(x% v[i] == 0)
x/= v[i];
return (x== 1);
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Biologie,
9 ani în urmă