Cod sursa(job #2354412)

Utilizator SsussuOrtoanu Raul Ssussu Data 25 februarie 2019 12:05:20
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>
#define N 45000;
using namespace std;
ifstream f("maxd.in");
ofstream g("maxd.out");
bool c[45000];
long long prim[45000],np,i,nrdmax,cnt,d,a,b,minim;
void ciur()
{
    int i,j;
    for(i=2;i*i<N;i++)
        if(!c[i])
        for(j=i*i;j<N;j+=i)
            c[i]=true;
         for(i=2;i<N;i++)
            if(!c[i])
         {
             np++;
             prim[np]=i;
         }
}
long long nrdiv(long long n)
{
    int i,k,nr=1;
    for(i=1;prim[i]*prim[i]<=n;i++)
    {
        k=0;
        while(n%prim[i]==0)
        {
            k++;
            n=n/prim[i];
        }
        nr=nr*(k+1);
    }
    if(n!=1)
        nr=nr*2;
    return nr;
}
int main()
{
    ciur();
    f>>a>>b;
    for(i=1;i<=b;i++)
        d=nrdiv(i);
        if(d>minim)
        {
            minim=d;
            nrdmax=i;
            cnt=1;
        }
        else
        if(minim==d)
        cnt++;
        g<<nrdmax<<" "<<minim<<" "<<cnt;
        return 0;
}