Pagini recente » Cod sursa (job #1350607) | Cod sursa (job #1432568) | Cod sursa (job #240188) | Cod sursa (job #752832) | Cod sursa (job #1073103)
#include <cstdio>
typedef long long ll;
using namespace std;
ll N, P, C, result;
void read() {
freopen( "frac.in", "r", stdin);
freopen( "frac.out", "w", stdout);
}
bool *ciur;
void sieve() {
ciur = new bool[N];
C = 1;
for(ll i = 2; i < N; i++)
if ( N % i == 0 ) {
for(ll j = i; j < N; j+=i)
ciur[j] = true;
} else {
if( !ciur[i] )
C++;
}
int c = 0;
if( P % C == 0) {
result = ( P / C - 1 ) * N;
P = C;
} else {
result = ( P / C ) * N;
P = P % C;
}
ll i;
for(i = 1; i < N; i++)
if ( !ciur[i] ) {
c++;
if ( c == P )
break;
}
printf("%lld", result + i);
}
int main() {
read();
scanf("%lld %lld", &N, &P);
sieve();
return 0;
}