Pagini recente » Cod sursa (job #2914914) | Cod sursa (job #2201286) | Cod sursa (job #1133281) | Cod sursa (job #1853679) | Cod sursa (job #129409)
Cod sursa(job #129409)
#include<stdio.h>
#include<stdlib.h>
//#include<conio.h>
int prim(int v[],long nr)
{
if(!(nr%2)) return 0;
for(int i=3;i*i<=nr;i+=2)
{
if(v[i] && !(nr%i))
return 0;
}
return 1;
}
void genereaza(int v[],long p[],long n,int &k)
{
k=1;
p[0]=2;
v[0]=v[1]=0;v[2]=1;v[n]=0;
for(int i=3;i<n;i++)
{
v[i]=v[i+1]=0;
if(prim(v,i))
{
v[i]=1;
p[k++]=i;
}
}
}
int cmmdc(long a,long b)
{
while(a!=b)
if(a>b)a-=b;
else b-=a;
return a;
}
int main()
{
//clrscr();
int k=0;
int v[1000000];
long pr[100000];
long n=0;//,nr=0;
long long nr=0;
FILE *g;
FILE *f;
f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fseek(f, 0L, 0);
fscanf(f,"%ld",&n);
//n=100;
genereaza(v,pr,n,k);
nr=n;
long p=0;
for(p=2;p<=n;p++)
{
for(long q=p+1;q<=n;q++)
{
if(v[q])
{
nr++;
}
else
if(q%p)
{
if(cmmdc(p,q)==1)
{
nr++;
}
}
}
}
printf("%d",(2*nr-1));
fprintf(g,"%d",(2*nr-1));
fclose(f);
fclose(g);
return 0;
}