Cod sursa(job #2456615)

Utilizator Simon2712Simon Slanina Simon2712 Data 14 septembrie 2019 21:00:38
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.33 kb
#include <fstream>

using namespace std;
ifstream cin("an.in");
ofstream cout("an.out");
int baz[101];
short int exp[101];
int main()
{
    int n,cop,stop=1,f,nr=0,nrr,rez=1,i,maxi=0,inm=1,rip;
    cin>>n;
    cop=n;
    for(f=2;f*f<=cop;f++)
    {
        if(cop%f==0)
        {
            nr++;
            baz[nr]=f;
            while(cop%f==0){
                exp[nr]++;
                cop/=f;
            }
            maxi=max(maxi,(int)exp[nr]);
            rez*=f;
        }
    }
    if(cop>1){
      rez*=cop;
      nr++;
      baz[nr]=cop;
      exp[nr]=1;
    }
    if(rez>=maxi)
      cout<<rez;
    else{
      while(stop)
      {
        inm++;
        if(inm*rez>=maxi)
        {
          stop=0;
          cout<<inm*rez;
        }
        else
        {
          rip=1;
          for(i=1;i<=nr && rip;i++)
          {
            if(exp[i]>inm*rez){
              if(inm%baz[i]==0)
              {
                cop=inm;
                nrr=0;
                while(cop%baz[i]==0)
                {
                  cop/=baz[i];
                  nrr++;
                }
                if(exp[i]>inm*rez*(nrr+1))
                  rip=0;
              }
              else
                rip=0;
            }
          }
        }
      }
    }
    return 0;
}