Cod sursa(job #2339304)

Utilizator StefanSanStanescu Stefan StefanSan Data 8 februarie 2019 18:07:37
Problema Frac Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <string.h>
using namespace std;

ifstream in("frac.in");
ofstream out("frac.out");
int factori[120000000], nr = 0;
bool check(int x){
    int ok = 1;
      for(int i = 0; i < nr && ok == 1; i++){
           if(x % factori[i] == 0){
               ok = 0;
           }
      }
      if(ok == 0){
           return false;
      }else{
           return true;
      }

}
int main() {
    int n, p;
    in >> n >> p;
    int ciur[120000], nrprime[120000], contor = 0, j ;
    memset(ciur, 1, sizeof(ciur));
	for (int i = 2; i * i <= n; i++) {
		if (ciur[i]) {
			j = 2;
			while (i * j <= n) {
				ciur[i * j] = 0;
				j++;
			}
		}
	}
	for (int i = 2; i <= n; i++) {
		if (ciur[i]) {
			nrprime[contor] = i;
			contor++;
		}
	}
	for(int i = 0; i < contor; i++){
        if(n % nrprime[i] == 0){
            factori[nr] = nrprime[i];
            nr++;
        }
	}
	int nra = 0, termen = 1;
	while(nra != p){
        if(check(termen) == true){
            nra++;
        }
        termen++;
	}
	out << termen - 1;
}