Pagini recente » Cod sursa (job #2848349) | Cod sursa (job #2662353) | Cod sursa (job #2977433) | Cod sursa (job #282219) | Cod sursa (job #1483434)
#include <stdio.h>
#define MAX_N 1000000
int p[MAX_N];
int primes(int n){
int i,j;
p[0] = 0;
p[1] = 0;
for(i=2;i*2<=n;i++){
if(p[i] == 0){
for(j=i*2;j<=n;j+=i){
if(p[j] == 0){
p[j] = i;
}
}
}
}
}
int cmmdc(int a,int b){
return b ? cmmdc(b, a % b) : a;
}
long long calc(n){
int i = 0,j = 0;
long long result = 1;
for(i = 1; i<n-1; i++){
for(j = i+1;j<n; j++){
// printf("%d/%d = ", i, j);
if(i == 1){
// printf("OK\n");
result+=2;
continue;
} else if(j % i){
int p_i = p[i];
int p_j = p[j];
if(!(p_i && p_i == p_j)){
int cont = 0;
if(p_i && !(j % p_i)) cont = 1;
if(p_j && !(i % p_j)) cont = 1;
if(!p_i && !p_j) cont = 0;
if(!cont){
//if(cmmdc(j,i) <= 1){
// printf("OK\n");
result+=2;
continue;
//}
}
}
}
// printf("NOT OK\n");
}
}
return result;
}
int main(){
FILE *f = fopen("fractii.in","r");
int n;
long long res = 0;
fscanf(f,"%d",&n);
fclose(f);
primes(n);
/* int k;
for(k=0;k<11;k++){
printf("%d=%d; ",k,p[k]);
}
*/
// printf("\n");
res = calc(n+1);
// printf("%lli \n",res);
f = fopen("fractii.out","w");
fprintf(f,"%lli",res);
fclose(f);
}