Cod sursa(job #219616)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 7 noiembrie 2008 19:27:05
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#include <math.h>
const int N = 1000001;
int n,nr,i,j,k,nrprim [N];          
bool gasit,prim [N];        
int main()          
{
    freopen("fractii.in","r",stdin);          
    freopen("fractii.out","w",stdout);          
    scanf("%d",&n);
    for (i=2;i<=N;i++)  
    	prim [i] = true; 	
	for (i=2;i<=sqrt(n);i++)  
        if(prim[i])  
            for (k=i*i;k<=n;k=k+i)  
                prim [k] = false;
	k = 0; //Pozitia de scriere.		
	for	(i = 1; i<=n; i++)
	{
		if (prim [i])
		{
			k++;
			nrprim [k] = i;
		}
	}
    for (i = 2; i <= (n-1); i++)          
		for (j = i + 1; j <= n; j++)          
	    {        
			gasit = false;        
			if (j%i!=0)
			{
				for (k=1;nrprim[k]<=(j/2);k++)
					if ((i%nrprim[k]==0) && (j%nrprim[k]==0))
					{
						gasit = true;
						break;
					}
			}
			else gasit = true;
			if (!gasit)        
				nr++;        
	    }   
    nr = nr * 2 + n * 2 - 1;  
    printf("%d",nr);          
    return 0;          
}