Cod sursa(job #60126)

Utilizator MirceampMuresan Mircea Paul Mirceamp Data 12 mai 2007 17:57:58
Problema Puteri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.95 kb
#include<fstream>
#include<math.h>

using namespace std;

int n,a,b,c,m[1000],z[1000],p,k,q=1,w=1;
int main()
{
    ifstream fin("puteri.in");
    ofstream fout("puteri.out");
int i,j,v,l,max1=0,max=0,e=1,ok=0,cont=0;
fin>>n;
for(i = 1; i <= n; i++)
{
      fin>>a>>b>>c;
      for(j= 1; j <= a; j++)
      q*=2;
      for(j = 1; j <= b; j++)
      w*=3;
      for(j = 1; j <= c; j++)
      e*=5;
      m[k++]=q*w*e;
      q=1;e=1;w=1;
}

for(i = 0; i < k; i++)
{
      for(j = i+1; j < k; j++)
      {
            q = m[i];
            w = m[j];
           
           for(v = 2; v <= q/2; v++)
           if(q%v != 0)
           cont = 1;
           else
           {
               cont = 0;
               break;
           }
           if(cont == 0)
           {
           for(e = 2; e <= q/2; e++)
            while(q%e == 0)
            {
                      z[e]++;
                      q/=e;
            }
            }
            else
            z[q]++;
          
           for(v = 2; v <= q/2; v++)
           if(w%v != 0)
           cont = 1;
           else
           {
               cont = 0;
               break;
           } 
           if(cont == 0)
           {
      for(e = 2; e <= w/2; e++)
      while(w%e == 0)
      {
                z[e]++;
                w/=e;
      }
      }
      else
      z[w]++;
           
            if(q > w)
            max1=q;
            else
            max1=w;
      for(v = 1; v <= max1; v++)
      if(z[v]>z[v+1])
      max = z[v];
      else
      max = z[v+1];
      for(v = 1; v <= max1; v++)
      {
      if(z[v] == max || z[v] == 0)
       ok = 1;
       else
       {
           ok = 0;
           break;
       }
       }
       if(ok == 1)
       p++;
       for(v = 1; v <= max1; v++)
       z[v] = 0;
       max1 = 0;
       max = 0;
       }
}
fout<<p/2;

fin.close();
fout.close();

return 0;

}