Pagini recente » Cod sursa (job #171219) | Cod sursa (job #219168) | Cod sursa (job #23428)
Cod sursa(job #23428)
#include<stdio.h>
#include<math.h>
#define MAXSIZE 1000001
int n;
int citire()
{
FILE *f=fopen("fractii.in","r");
fscanf(f,"%d",&n);
fclose(f);
return 1;
}
int p[MAXSIZE];
int numar(int q) {
int i, j, nr = 0,t;
if(q%2==0)
{
for(i=2;i<=n;i++) {p[i]=(i%2==0&&q%2==0); }
for(i=3; i<=n; i+=2)
{
if(p[i]==0)
{
if(q%i==0||i%q==0)
for(j=i; j<=n; j+=i) p[j]=1;
else nr++;
}
}
}
else{
for(i=2;i<=n;i++) p[i]=0;
for(i=2; i<=n; i++)
{
if(p[i]==0)
{
if(q%i==0||i%q==0)
for(j=i; j<=n; j+=i) p[j]=1;
else nr++;
}
}
}
return nr;
}
int main(void)
{
int i,nr=0;
FILE *f;
citire();
nr=2*n-1;
for(i=2;i<=n;i++) nr+=numar(i);
f=fopen("fractii.out","w");
fprintf(f,"%d\n",nr);
fclose(f);
return 0;
}