Cod sursa(job #244401)
Utilizator | Mandu Dragos drag0s93 | Data | 14 ianuarie 2009 23:16:11 |
---|---|---|---|
Problema | Divizori Primi | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
const int N=1000000;
int a,b;
bool c[N];
void ciur()
{
int j=0;
for(int i=2;i<=N;++i)
if(c[i]==false)
for(j=i+i;j<=N;j+=i)
c[j]=true;
}
int main()
{
int ndiv=0;
freopen("ndiv.in","r",stdin);
freopen("ndiv.out","w",stdout);
scanf("%d%d",&a,&b);
ciur();
for(;a<=b;++a)
{
if(c[a]==false)
ndiv+=2;
else
for(int i=1;i*i<=a;++i)
{
if(i*i!=a && a%i==0)
ndiv+=2;
else if(i*i==a && a%i==0)++ndiv;
}
}
printf("%d",ndiv);
return 0;
}