Cod sursa(job #66872)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 21 iunie 2007 16:55:10
Problema GFact Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream.h>
#include<stdio.h>
#include<math.h>

long long p;
long long q, b, nr;
long long a, v[10], ex;

void citire()
{
  ifstream in("gfact.in");
  in>>p>>q;
  in.close();
}

void descomp()
{

  for (int d=2; d<=p; d++)
    {
      if (p%d==0)
      {
	v[++nr]=d;
	ex=0;
	while (p%d==0) { p/=d; ex++;}
      }
      
    }    
}


void aflu()
{
  long long i, contor=0;
  if (v[nr]==2) i=v[nr]*q;
   else i=v[nr];
  while (contor<q*ex)
   {
     long long j;
     j=i;
     if (j%v[nr]==0)
       while (j%v[nr]==0)
	 {
	   contor++;
	   j/=v[nr];
	 }
     i+=v[nr];
   }
  freopen("gfact.out","w",stdout);
  printf("%lld",i-v[nr]);
}

int main()
{
  citire();
  descomp();
  aflu();
  return 0;
}