Cod sursa(job #279188)

Utilizator maryuszmarius ciubotariu maryusz Data 12 martie 2009 18:29:10
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<stdio.h>
#include<iostream.h>
long int n,k,pare,impare;
long cmmdc(long a,long b)
{
	if(!b) return a;
	return cmmdc(b,a%b);
}
int valid(long int i, long int j)
{
	if(i!=1 && j!=1 && cmmdc(i,j)!=1) return 0;
	return 1;
}
void back()
{
	for(int i=3;i<=n;i+=2)
		for(int j=3;j<=n;j+=2)
		{
			if(valid(i,j)) 
			{ 
				cout<<i<<"/"<<j<<endl; 
				k++;
			}
		}
	for(i=6;i<=n;i+=2)
		for(int j=3;j<=n/2;j+=2)
			if(i%j==0 || j%i==0) k--;


}
int main(void)
{
	FILE *f,*g; 
	f=fopen("fractii.in","r");
	g=fopen("fractii.out","w");
	fscanf(f,"%ld",&n);
	pare=n/2;
	impare=n-pare;
	k=n; // umplem 1
	cout<<k<<endl;
	k+=n-1; // umplem fiecare cu 1 in afara de 1 : 2/1 3/1 4/1
	cout<<k<<endl;
	k+=pare*(impare-1);
	cout<<k<<endl; //tuturor nr pare li se adauca cele impare fara imparul 1 : pare*(impare-1)
	k+=pare*(impare-1); // tuturor nr impare in afara de nr 1 le si adauga cele pare : impare-1*
	cout<<k<<endl;
	back();
	fprintf(g,"%ld\n",k);
	cout<<k<<endl;
	fcloseall();
	return 0;
}