Pagini recente » Statistici popescu (gogosutza) | Rating Tudor Roxana (Roxiette) | Cod sursa (job #2511648) | Cod sursa (job #991709) | Cod sursa (job #279158)
Cod sursa(job #279158)
#include<stdio.h>
#include<iostream.h>
long int n,k,a[100000][100000];
long cmmdc(long a,long b)
{
if(!b) return a;
return cmmdc(b,a%b);
}
int valid(long int i, long int j)
{
if(i!=1 && j!=1 && cmmdc(i,j)!=1) return 0;
return 1;
}
int sum()
{
int s=0;
for(int i=1;i<=n;i++)
{ for(int j=1;j<=n;j++)
s+=a[i][j];
}
return s;
}
void back()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(i==1) a[i][j]=1;
else if(j==1) a[i][j]=1;
else if(i==j && j!=1) a[i][j]=0;
else if(valid(i,j)) a[i][j]=1;
else a[i][j]=0;
}
/*for(i=1;i<=n;i++)
{ for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}*/
}
int main(void)
{
FILE *f,*g;
f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fscanf(f,"%ld",&n);
/*pare=n/2;
impare=n-pare;
k=n; // umplem 1
cout<<k<<endl;
k+=n-1; // umplem fiecare cu 1 in afara de 1 : 2/1 3/1 4/1
cout<<k<<endl;
// k+=pare*(impare-1);
// cout<<k<<endl; //tuturor nr pare li se adauca cele impare fara imparul 1 : pare*(impare-1)
// k+=pare*(impare-1); // tuturor nr impare in afara de nr 1 le si adauga cele pare : impare-1*pare
cout<<k<<endl;*/
back();
fprintf(g,"%ld\n",sum());
//cout<<sum()<<endl;
fcloseall();
return 0;
}