Informatică, întrebare adresată de stefansopronoxt13r, 8 ani în urmă

Fiind elev în clasa a IX-a, George, îşi propune să studieze capitolul divizibilitate cât mai bine. Ajungând la numărul de divizori asociat unui număr natural, constată că sunt numere într-un interval dat, cu acelaşi număr de divizori. De exemplu, în intervalul [1, 10], 6, 8 şi 10 au acelaşi număr de divizori, egal cu 4. De asemenea, 4 şi 9 au acelaşi număr de divizori, egal cu 3 etc.

Răspunsuri la întrebare

Răspuns de stassahul
3
Sint 99% sigur ca e vorba de problema MaxD de pe pbinfo:

#include <fstream>

using namespace std;

ifstream fin("maxd.in");
ofstream fout("maxd.out");

int NrDiv(int n);
int a,b,Min,nrdiv,contor;

int main()
{

    fin >> a >> b;

    for(;a<=b;a++)
    {
        int Max=NrDiv(a);
        if(Max>nrdiv)
        {
            nrdiv=Max;
            Min=a;
            contor=1;
        }
        else
            if(Max==nrdiv)
                contor++;
    }

    fout << Min << " " << nrdiv << " " << contor;

    return 0;

}
int NrDiv(int n)
{
    int count=1,k=0;
    while(n%2==0)
    {
        k++;
        n/=2;
    }
    count=k+1;
    for(int i=3;i*i<=n;i+=2)
    {
        k=0;
        while(n%i==0)
        {
            k++;
            n/=i;
        }
        count*=(k+1);
   }
   if(n>1)
      count<<=1;
   return count;
}


stassahul: In general problema este simpla, doar ca algoritmul cu numarul divizorilor da de cap
Alte întrebări interesante