Pagini recente » Cod sursa (job #92649) | Cod sursa (job #1492314) | Cod sursa (job #1250624) | Cod sursa (job #285769) | Cod sursa (job #617934)
Cod sursa(job #617934)
#include <cstdio>
#include <vector>
#define MaxN 1000005
#define infile "magicnum.in"
#define outfile "magicnum.out"
using namespace std;
vector <int> prim;
int X,Y,nrSol;
bool ciur[MaxN];
void read()
{
freopen(infile,"r",stdin);
scanf("%d%d",&X,&Y);
fclose(stdin);
}
void prime()
{
int i,j;
ciur[1]=true;
for(i=2;i*i<=Y;i++)
if(ciur[i]==false)
for(j=2;j*i<=Y;j++)
ciur[i*j]=true;
for(i=2;i<=Y;i++)
if(!ciur[i])
prim.push_back(i);
}
int numara(int x)
{
int i=0,nr=1,d,j;
while(x>1)
{
d=0; j=prim[i];
while(x%j==0 && x>0)
{
x/=j;
d++;
}
nr*=(d+1);
i++;
}
return nr;
}
void solve()
{
int i,nr;
for(i=X;i<=Y;i++)
{
nr=numara(i);
if(i%nr==0)
nrSol++;
}
}
void write()
{
freopen(outfile,"w",stdout);
printf("%d\n",nrSol);
fclose(stdout);
}
int main()
{
read();
prime();
solve();
write();
return 0;
}