Pagini recente » Cod sursa (job #1806683) | Istoria paginii utilizator/musicxd | Cod sursa (job #383572) | Cod sursa (job #248348) | Cod sursa (job #1571054)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int prim(int n)
{
int d;
for(d=2; d<=sqrt(n)+0.001; d++)
if(n%d==0)
return 0;
return 1;
}
int divizor(int n,int t)
{
int d;
int s=0,k=0;
int p=1;
if(prim(n))
return t/n;
if(n%2==0)
{
s+=t/2;
p=p*2;
k++;
}
if(n%3==0)
{
s+=t/3;
p=p*3;
k++;
}
for(d=4; d<=n/2; d++)
if(n%d==0&&prim(d))
{
s+=t/d;
p=p*d;
k++;
}
if(k>1)
s=s-t/p;
if(k==0)
s=1;
return s;
}
int main()
{
FILE * f = fopen("fractii.in","r");
// FILE * g = fopen("fractii.out","w");
int n,i,j;
long long s;
fscanf(f,"%d",&n);
s=n*n;
s=s-n/2-n/3;
for(i=4; i<=n; i++)
{
s=s-divizor(i,n);
}
printf("%d",s);
return 0;
}