Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *Task: TOP2016cp1
- *Lang: C++
- *Time complexity: O(N²) - very slow for big N.
- *Solution avec un tableau de booléen
- */
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- int N, K;
- cin >> N >> K;
- //Déclarez un tableau de booléen initialisé à false (non barré)
- //les indices du tableau sont les entiers de 0 à N, donc 2 à N.
- vector<bool> list(N,false);
- //Compteur des entiers qui seront barrés.
- int cnt = 0;
- //i: on commence 2.
- int i = 2;
- //tant que on a pas fini de visiter tout les entiers
- //et on n'a pas barré le kéme entier.
- while (i <= N && cnt != K) {
- //On cherche tout les multiples de "i"
- for (int j = 2 ; j <= N ; ++j) {
- //Si j n'est barré et j est multiple de i
- if (list[j] == false && j % i == 0) {
- cnt++; //Incrémenter le Compteur.
- list[j] = true; //Barré j.
- }
- //Si le compteur a atteint le kéme entier barré
- if (cnt == K) {
- cout << j << '\n'; //On affiche cet entier
- return 0; //On quite le programme.
- }
- }//fin de la boucle for
- //On passeau nombre suivant.
- i++;
- }//fin de la boucle while
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement