Fie doua numere naturale .Determinati care are mai multi divizori
stoicadenny:
Care sunt numerele?
Răspunsuri la întrebare
Răspuns de
2
#include <bits/stdc++.h>
using namespace std;
int a,b;
unsigned long Count(unsigned long a);
int main()
{
cin >> a >> b;
if(Count(a)>Count(b)) cout << a;
else cout << b;
return 0;
}
unsigned long Count(unsigned long a)
{
unsigned long count = 1, k = 0, i;
if (a == 1 || a == 2)
return a;
while ((a & 1) == 0)
{
k++;
a >>= 1;
}
if (a == 1)
return k + 1;
else
count = k + 1;
for(i = 3; i*i <= a; i += 2)
{
k = 0;
while(a % i == 0)
{
k++;
a /= i;
}
count *= (k + 1);
}
if (a > 1)
count <<= 1;
return count;
}
using namespace std;
int a,b;
unsigned long Count(unsigned long a);
int main()
{
cin >> a >> b;
if(Count(a)>Count(b)) cout << a;
else cout << b;
return 0;
}
unsigned long Count(unsigned long a)
{
unsigned long count = 1, k = 0, i;
if (a == 1 || a == 2)
return a;
while ((a & 1) == 0)
{
k++;
a >>= 1;
}
if (a == 1)
return k + 1;
else
count = k + 1;
for(i = 3; i*i <= a; i += 2)
{
k = 0;
while(a % i == 0)
{
k++;
a /= i;
}
count *= (k + 1);
}
if (a > 1)
count <<= 1;
return count;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Informatică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă