Cod sursa(job #980532)

Utilizator raulstoinStoin Raul raulstoin Data 4 august 2013 21:23:40
Problema Frac Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<cmath>
#include<vector>
#include<algorithm>

using namespace std;

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

long long n,p,i;
bool prim[110000];
vector<int>divs;

void ciur()
{
	vector<int> pr;
	int l=sqrtl(n)+1;
	for(int i=2;i<=l;i++)
		if(!prim[i])
		{
			for(int j=i+i;j<l;j+=i)
				prim[j]=1;
			pr.push_back(i);
		}
	if(binary_search(pr.begin(),pr.end(),n))
		return;
	for(size_t i=0;i<pr.size() && n>1;i++)
		if(n%pr[i]==0)
		{
			divs.push_back(pr[i]);
			while(n%pr[i]==0)
				n/=pr[i];
		}
}

int main()
{
	fin>>n>>p;
	ciur();
	if(divs.empty())
	{
		fout<<p<<'\n';
		return 0;
	}
	size_t j;
	for(i=1;p;i++)
	{
		for(j=0;j<divs.size();j++)
			if(i%divs[j]==0)
				break;
		if(j==divs.size())
			p--;
	}
	fout<<i-1<<'\n';
	
	return 0;
}