Pagini recente » Cod sursa (job #1909682) | Cod sursa (job #1239287) | Cod sursa (job #662306) | Cod sursa (job #399413) | Cod sursa (job #1091723)
#include <cstdio>
#include <cmath>
using namespace std;
#define MAX 1000002
#define PMAX 78505
int ciur[MAX],np,prim[PMAX],mat[MAX];
void fciur();
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
int n,scad=0,i,j,solutie,rad,lin,test,save;
fciur();
scanf("%d",&n);
rad=(int)((double)sqrt(n));
for(lin=2; lin<=n; lin++)
{
test=1;
save=1;
do
{
if(lin%prim[test]==0){
for(j=prim[test]; j<=n; j+=prim[test]*save)
scad++;
save=prim[test];
}
test++;
}while(test<=rad+1);
//for(i=1; i<=n; i++)
// if(mat[i]==1){
// scad++;
// mat[i]=0;
}
//printf("%d\n",scad);
solutie=n*n-scad;
printf("%d",solutie);
return 0;
}
void fciur()
{
int i,j;
ciur[0]=ciur[1]=1; //nu sunt prime
for(i=4; i<=MAX; i+=2)
ciur[i]=1;
for(i=3; i<=1001; i++) //1000 e rad din MAX
for(j=i*i; j<=MAX; j=j+i*2)
ciur[j]=1;
for(i=1; i<=MAX; i++)
if(!ciur[i])
prim[np++]=i;
np--;
}