Pagini recente » Cod sursa (job #2569788) | Cod sursa (job #2853927) | Cod sursa (job #1747612) | Cod sursa (job #387770) | Cod sursa (job #2582321)
#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<=28; 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;
}