Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Fie doua numere naturale .Determinati care are mai multi divizori


stoicadenny: Care sunt numerele?

Răspunsuri la întrebare

Răspuns de stassahul
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;
}
Alte întrebări interesante