Cod sursa(job #23945)

Utilizator lluckyLuca Vlad llucky Data 1 martie 2007 17:46:43
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#include<math.h>
#include<string.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], p2[MAXSIZE];
int numar(int q) {
	 int i, j, nr = 0;

memset(p,0,n*8);
//	 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 t,i,j,nr=0;
FILE *f;
citire();
nr=2*n-1;
for(i=2;i<=n;i++)
 if(p2[i]==0)
	{
	 t=numar(i);
	 for(j=i;j<=n;j*=i)
	 {
	 p2[j]=1;
	 nr+=t;
	 }
	}
f=fopen("fractii.out","w");
fprintf(f,"%d\n",nr);
fclose(f);
return 0;
}