Prime Apropiate

Time limit: 0.2s Memory limit: 10MB Input: prime.in Output: prime.out

Pentru temă, Alina trebuia să-și verifice cunoștințele legate de numere prime. Alina va citi o valoare NN care semnifică numărul numerelor naturale ce vor fi prelucrate și o valoare CC care poate fi 11 sau 22. În continuare va citi cele NN numere naturale. Fiecare număr natural AA, citit, va fi prelucrat astfel:

  • dacă AA este număr prim, el va fi afișat nemodificat;
  • dacă AA nu este prim, se va determina cel mai apropiat număr prim care va fi afișat. Considerăm cel mai apropiat număr de valoarea AA, cel pentru care modulul diferenței dintre număr și valoarea AA este cel mai mic. Fie XX cel mai mare număr prim mai mic decât AA, și YY cel mai mic număr prim mai mare decât AA. Dacă cele două numere sunt la fel de "apropiate" de AA atunci se va afișa XX dacă C=1C=1 și YY, dacă C=2C=2.

Cerință

Afișați valorile prelucrărilor fiecărui număr AA.

Date de intrare

Fișierul de intrare prime.in conține pe prima linie două numere, NN reprezentând numărul de numere ce se vor citi și CC, valoarea ce va decide dacă se afișează valoarea primă cea mai apropiată mai mică, respectiv mai mare decât valoarea corespunzătoare. Pe linia a doua sunt NN numere separate prin spațiu, fiecare notat cu AA; numerele naturale ce vor fi prelucrate.

Date de ieșire

În fișierul de ieșire prime.out se vor scrie pe o singură linie cele NN numere naturale, separate prin spațiu reprezentând numerele prime "apropiate" de cele inițiale.

Restricții și precizări

  • 0N100 0000 \leq N \leq 100 \ 000;
  • 1<A4 000 0001 < A \leq 4 \ 000 \ 000;
  • 1C21 \leq C \leq 2.

Exemplul 1

prime.in

15 1
3 6 8 2 3 5 7 9 2 5 3 7 11 22 21

prime.out

3 5 7 2 3 5 7 7 2 5 3 7 11 23 19

Exemplul 2

prime.in

13 2
3 6 7 11 21 9 5 7 14 29 24 25 16

prime.out

3 7 7 11 23 11 5 7 13 29 23 23 17

Log in or sign up to be able to send submissions!