Pentru fiecare numar A trebuie sa gasiti cel mai mare numar K cu proprietatea ca un sir B de numere naturale,nu neaparat distincte,astfel incat (B1+1)(B2+1)...(BK+1)=A.(C++)
nokia2700:
Cred ca e nevoie de adaugat Bi >= 1, pentru orice i € [1;n]
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int prim(int x)
{
if (x != 2 && x % 2 == 0)
return 0;
for (int i = 3; i*i <= x; i = i + 2)
if (x%i == 0)
return 0;
return 1;
}
int cmmnk(int x)
{
int d = 2, k = 0;
if (prim(x))
return 1;
while (x != 1)
{
while (x%d == 0)
x = x / d;
k = k + 1;
d = d + 1;
}
return k-1;
}
int main()
{
int a,x,v[100],t=0;
cin >> a;
for (int i = 1; i <= a; i++)
{
cin >> x;
v[++t] = cmmnk(x);
}
for (int i = 1; i <= t; i++)
cout << v[i] << ' ';
return 0;
}
using namespace std;
int prim(int x)
{
if (x != 2 && x % 2 == 0)
return 0;
for (int i = 3; i*i <= x; i = i + 2)
if (x%i == 0)
return 0;
return 1;
}
int cmmnk(int x)
{
int d = 2, k = 0;
if (prim(x))
return 1;
while (x != 1)
{
while (x%d == 0)
x = x / d;
k = k + 1;
d = d + 1;
}
return k-1;
}
int main()
{
int a,x,v[100],t=0;
cin >> a;
for (int i = 1; i <= a; i++)
{
cin >> x;
v[++t] = cmmnk(x);
}
for (int i = 1; i <= t; i++)
cout << v[i] << ' ';
return 0;
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă