Pagini recente » Cod sursa (job #1576219) | Cod sursa (job #2628174) | Cod sursa (job #1908689) | Cod sursa (job #1060374) | Cod sursa (job #2582312)
#include <iostream>
#include <fstream>
using namespace std;
int divi(long long a,long long b)
{
long long r;
if(a<b)
swap(a,b);
while(b!=0)
{
r=b;
b=a%b;
a=r;
}
return a;
}
void cautare(long long &pred,long long n)
{
long long r=pred;
for(int p=0; p<=29; p++)
if(divi(r+(1<<p),n)==1 and r+(1<<p)>pred)
{
r+=(1<<p);
break;
}
pred=r;
}
int main()
{
ifstream cin("frac.in");
ofstream cout("frac.out");
long long n,k,pred=1;
cin>>n>>k;
for(int i=1; i<k; i++)
cautare(pred,n);
cout<<pred;
return 0;
}