Cod sursa(job #25724)

Utilizator Bogdan-BBesliu Bogdan Bogdan-B Data 4 martie 2007 14:18:53
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream.h>
ifstream f("puteri.in");
ofstream g("puteri.out");
int nr[10001];
int d,m,diviz[1001],mult[1001];
int pow(int x,int y)
{
long int i,p=1;
for(i=0;i<y;i++)
p*=x;
return p;
}
int vp(int n)
{int x=0,j=0,nx=1,put,ok=0;
 for(d=2;n>1;d++)
      {	for(m=0; n%d==0; m++, n/=d);
	 if(m)
	 { x++; diviz[j]=d; mult[j]=m; j++; }
      }
    if(j==1) return 1;
    else
     for(d=0;d<j-1;d++)
       if(mult[d]==mult[d+1]) ok=1;
       if(ok)
	  return 1;
	 else return 0;
}
long int fn(int x,int y,int z)
{
int m;
if(x==0&&y==0&&z==0) m=0;
else if(x!=0&&y==0&&z==0) m=pow(2,x);
else if(x==0&&y!=0&&z==0) m=pow(3,y);
else if(x==0&&y==0&&z!=0) m=pow(5,z);
else if(x!=0&&y!=0&&z==0) m=pow(2,x)*pow(3,y);
else if(x!=0&&y==0&&z!=0) m=pow(2,x)*pow(5,z);
else if(x==0&&y!=0&&z!=0) m=pow(3,y)*pow(5,z);
else if(x!=0&&y!=0&&z!=0) m=pow(2,x)*pow(3,y)*pow(5,z);
return m;
}
int main()
{
int n,i,j,w,a,b,c,x=0,y,z;
f>>n;
for(i=1;i<n;i++)
{ f>>a>>b>>c;
  nr[i]=fn(a,b,c);
}
  f>>a>>b>>c;
w=fn(a,b,c);
for(i=1;i<n;i++) if(vp(nr[i]*w)) x++;
g<<x;
return 0;
}