Pagini recente » Cod sursa (job #883409) | Cod sursa (job #2180087) | Cod sursa (job #2642944) | Cod sursa (job #822479) | Cod sursa (job #761345)
Cod sursa(job #761345)
#include<stdio.h>
#include<math.h>
long int prim(long int n){
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
long int numara(long int x,long int n)
{ int ok,k;
long int i,nr=1,a[1000],j=0;
for(i=2;i<=x/2;i++){
if(x%i==0) {a[j+1]=i;
j++;
}
}
for(i=2;i<=n;i++){
ok=1;
for(k=1;k<=j;k++)
if(i%a[k]==0) ok=0;
if(ok) nr++;
}
return nr;
}
int main(){
long int n,s,i;
FILE *f=fopen("fractii.in","r"),*g=fopen("fractii.out","w");
fscanf(f,"%ld",&n);
if(n==1) fprintf(g,"%d",1);
else {s=n;
for(i=2;i<=n;i++)
{
if(prim(i)) s+=n-n/i;
else s+=numara(i,n);
}
}
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
return 0;
}