Cod sursa(job #1936055)

Utilizator mihnea_cazanmihnea cazan mihnea_cazan Data 22 martie 2017 20:10:18
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream cin("maxd.in");
ofstream cout("maxd.out");
int nrdiv(int n)
{
int d,p,nrd=1;
d=2;
while(d*d<=n)
{
if(n%d==0)
{
p=0;
while(n%d==0)
{
p++;
n/=d;
}
nrd*=(p+1);
}
d++;
}
if(n!=1)
   nrd*=2;
return nrd;
}
int ciur[2000001];
int main()
{
int a,b,i,cnt=0,valmin,maxi=0,pas=1;
cin>>a>>b;
ciur[1]=0;
for(i=2;i*i<=2000000;i++)
{
  if(ciur[i]==0)
  {
     for(int j=i*i;j<=2000000;j+=i)
         ciur[j]++;
  }
}
for(i=a;i<=b;i++)
    {
      if(ciur[i]>0)
         maxi=max(maxi,nrdiv(i));
    }
for(i=a;i<=b;i++)
{
if(ciur[i]>0)
{if(pas==1&&nrdiv(i)==maxi)
   {valmin=i;
    pas--;
    cnt++;
    }
else if(pas==0)
{
if(nrdiv(i)==maxi)
   cnt++;
}}
}
cout<<valmin<<" "<<maxi<<" "<<cnt;
return 0;
}