Pagini recente » Cod sursa (job #1344662) | Cod sursa (job #2684392) | Cod sursa (job #3041183) | Cod sursa (job #2447247) | Cod sursa (job #2655559)
#include <bits/stdc++.h>
#define MAXSIZE 1000000
using namespace std;
FILE *f=fopen("fractii.in","r");
FILE *g=fopen("fractii.out","w");
bool v[MAXSIZE]={0};
int n,k,p,q;
long long int sumaT=0;
long long int desc(int k){int ok=0;int a=k;
long long int suma=0;
int fan = 0;
while(k%2==0){k/=2;ok=1;}
if(ok==1){suma+=(n/2);fan++;}
for(int i=3;i<=sqrt(k);i+=2){ok=0;
while(k%i==0){k/=i;ok=1;}
if(ok==1){suma+=(n/i);fan++;}
}
if(k > 2) {suma += n/k;fan++;}
if(fan >= 2)
suma-=n/a;
return suma;
}
void solve(){
sumaT=n; cout<<sumaT<<" 1"<<'\n';
for(int i=2;i<=n;++i){
if(v[i]==1)
sumaT+=n-desc(i);
else
sumaT+=n-(n/i);
cout<<sumaT<<" "<<i<<'\n';
}
fprintf(g,"%lli",sumaT);
}
void ciur(){
for(int i=4;i<=MAXSIZE;i+=2)v[i]=1;
for(int i=3;i<=MAXSIZE;i+=2)
if(v[i]==0)
for(int j=i+i+i;j<=MAXSIZE;j+=(2*i))
v[j]=1;
}
int main()
{
fscanf(f,"%d",&n);
int a=n;
ciur();
n=a;
solve();
}