Cod sursa(job #1802227)

Utilizator mdiannnaMarusic Diana mdiannna Data 9 noiembrie 2016 23:27:34
Problema Frac Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <stdio.h>

#define ll long long

using namespace std;
ll N, P;
ll last = 0;



ll dc(ll N1, ll m){
    ll cnt = 0;
    ll cnt2 = 0;

    for(ll k = 2; k<=m; k++){
    cnt = 0;
        for(ll i=2; i<=min(N1, k); i++){
            if(N1 % i == 0 && k % i == 0){
                cnt++;

            }


        }
        if(cnt==0){
            cnt2++;
            last = k;
        }
    }
    return cnt2+1;
}


void cautBin(ll st, ll dr, ll N, ll P){

    ll m = (st+dr)/2;

    if( P == dc(N, m)){
        cout << last ;
        return;
    }

/*
    if(st > dr){
       return;
    }

    if(st==dr){
        cout << m;
        return;
    }*/

    if( P < dc(N, m))
        cautBin(st, m-1, N, P);
    else
        cautBin(m+1, dr, N, P);
}

int main(){
  freopen("frac.in", "r", stdin);
  freopen("frac.out", "w", stdout);

    cin >> N >> P;
    cautBin(0, 1LL << 10,  N, P);
    return 0;
}