Cod sursa(job #117427)

Utilizator georgelRector George georgel Data 21 decembrie 2007 14:22:22
Problema Frac Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>

using namespace std;

ifstream fin("frac.in");
ofstream fout("frac.out");

int b[10000000];
void citire(long long &n,long long &p)
{
     fin>>n;
     fin>>p;
     
fin.close();
}
void umple(int q,int b[10000000],long long n,long long p)
{
     int j;
     for(j = q; j <= 100000;j++)
     if(j%q == 0)
     b[j] = 1;
}
void era(int b[10000000],long long n,long long p)
{
     int i,z;
z = n;
     for(i =2; i <= z/2; i++)
     if(n%i == 0)
     {
            umple(i,b,n,p);
            while(n%i == 0)
                    if(n%i == 0)
                      n/=i;
     }
     /*for(i = 1; i <= 19; i++)
     fout<<b[i]<<" ";*/
}
void gasire(long long p,int b[10000000],long long n)
{
     int q=0,i;
                for(i = 1 ; i <= 10000000;i++)
                if(b[i] == 0)
                {
                        q++;
                        if(q == p)
                        break;
                }
     fout<<i;
}
int main()
{
    long long  n,p;
    citire(n,p);
   era(b,n,p);
    gasire(p,b,n);

fout.close();

return 0;
}