Cod sursa(job #545981)

Utilizator PsychoRoAlex Buicescu PsychoRo Data 4 martie 2011 10:49:55
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<fstream.h>
ifstream fin("pairs.in");
ofstream fout("pairs.out");
long long n[100000],c[100][100],a[100];
/*int cmmdc(long a, long b)
{
	if(b<=0)
		return 0;
	else
		cmmdc(a,a%b);
}*/
int main()
{
	long long i,x,y,g=0,k=0,j,f=0,nr=0,h;
	int m;
	fin>>m;
	for(i=1;i<=m;i++)
		fin>>n[i];
	for(i=1;i<=m;i++)
	{
		k++;
		g=0;
		for(j=2;j<=n[i];j++)
			while(n[i]%j==0)
			{
				g++;
				c[k][g]=j;
				n[i]=n[i]/j;
			//	fout<<c[k][g]<<' ';
			}
				/*if(n[i]%j==0)
				{
					g++;
					c[k][g]=j;
					n[i]=n[i]/j;
				}*/
				
	
		c[k][0]=g;
	
		
			//fout<<'\n';
	}
/*	for(i=1;i<=k;i++)
	{	
			for(j=1;j<=a[i];j++)
				fout<<c[i][j]<<' ';
			fout<<'\n';
	}*/

	for(i=1;i<=k;i++)
	{	for(g=1;g<=c[i][0];g++)
				if(c[i][g]==c[i][g+1])
				
					for(j=1;j<=c[i][0];j++)
				{	c[i][j]=c[i][j+1];
					c[i][0]--;
					
				}
	}
	for(i=1;i<=k-1;i++)
	{	
			j=1;
		h=1;
		for(g=i+1;g<=k;g++)
		
			while( h<=c[i][0])
			{		
				if(c[i][j]!=c[g][h])
					j++;
				else
					g++;
				h++;
				if(j==c[i][0])
				{
					j=1;
					h++;
				}
			}
			nr++;

	}
/*	for(i=1;i<=k;i++)
	{	
			for(j=1;j<=c[i][0];j++)
				fout<<c[i][j]<<' ';
			fout<<'\n';
	}*/
			fout<<nr-1;
	return 0;
}