Cod sursa(job #2614893)
Utilizator | marin negai Gliu | Data | 12 mai 2020 20:15:59 |
---|---|---|---|
Problema | Frac | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("frac.in");
ofstream out("frac.out");
int const nmax=2000005;
long long int n=nmax,pr=2,p,pp[nmax],m;
unsigned char a[nmax];
int main(){
pp[1]=1;
in >>m>>p;
if(m %2==1){
pp[2]=2;
pr=3;
}
for(int i=3;i<=n;i=i+2){
if(a[i>>4] & (1<<((i>>1) & 7))) continue;
if( m % i !=0){
pp[pr]=i;
if(pr==p){
out <<pp[pr];
break;
}
pr++;
}
for(int j=i*3;j<=n;j+=i+i){
a[j >> 4] |= 1 << ((j>>1) & 7);
}
}
}