Prime

Time limit: 0.1s Memory limit: 16MB Input: prime.in Output: prime.out

Andrei, fascinat de frumusețea matematicii antice, a descoperit o secvență numerică magică. Această secvență se construiește după reguli simple, începând de la un număr inițial XX, fiind alcătuită din toate numerele prime mai mari sau egale decât XX.
Totuși, fiind foarte curios, Andrei descoperă și un ritual străvechi ce poate fi aplicat începând de la acest număr inițial XX și folosindu-se de secvența magică anterior construită. În funcție de când este aplicat, acest ritual respectă următoarele reguli:

  • Dacă asupra lui XX nu s-a aplicat încă niciun ritual, atunci lui XX i se va adauga primul număr din secvența magică.
  • Dacă asupra lui XX s-au aplicat mai multe ritualuri, în care cel mai recent a constat în adunarea unui număr din secvența magică, atunci din XX se va scădea primul număr din secvența magică car nu a fost încă folosit.
  • Dacă asupra lui XX s-au aplicat mai multe ritualuri, în care cel mai recent a constat în scăderea din XX a unui număr din secvența magică, atunci lui XX i se va aduna primul număr din secvența magică care nu a fost încă folosit.

Procesul continuă până când Andrei termină NN astfel de ritualuri. Acum, Andrei dorește să afle care este valoarea lui XX în urma celor NN ritualuri și de câte ori valoarea absolută a lui XX, după aplicarea a cel puțin unui ritual, a fost un număr prim.

Date de intrare

Fișierul de intrare prime.in conține pe prima linie două numere întregi, XX și NN, separate prin spațiu.

Date de ieșire

Fișierul de ieșire prime.out va conține două linii. Pe prima linie se va afișa valoarea lui XX în urma celor NN ritualuri. Pe a doua linie se va afișa de câte ori, pe parcursul efectuării acestor ritualuri, valoarea absolută a lui XX a fost un număr prim.

Restricții și precizări

  • 1X1061 \leq X \leq 10^6
  • 1N1051 \leq N \leq 10^5
  • Se garantează că NN și XX sunt alese astfel încât orice număr folosit într-un ritual 107\leq 10^7
  • Pentru teste în valoare de 5050 puncte, N104N \leq 10^4.
  • Pentru alte teste în valoare de 5050 de puncte, nu există restricții suplimentare.

Exemplul 1

prime.in

2 9

prime.out

18
2

Explicație

Pornind de la numărul inițial X=2X = 2, secvența magică generată conform regulilor este 2,3,5,7,11,13,17,19,23,...2, 3, 5, 7, 11, 13, 17, 19, 23,. . .

  • Inițial X=2X = 2.
  • După primul ritual XX devine 2+2=42 + 2 = 4
  • După al doilea ritual XX devine 43=14 - 3 = 1
  • După al treilea ritual XX devine 1+5=61 + 5 = 6
  • După al patrulea ritual XX devine 67=16 - 7 = -1
  • După al cincilea ritual XX devine 1+11=10-1 + 11 = 10
  • După al șaselea ritual XX devine 1013=310 - 13 = -3, al cărui modul este un număr prim.
  • După al șaptelea ritual XX devine 3+17=14-3 + 17 = 14
  • După al optulea ritual XX devine 1419=514 - 19 = -5, al cărui modul este un număr prim.
  • După al nouălea ritual XX devine 5+23=18-5 + 23 = 18.

Exemplul 2

prime.in

51 6

prime.out

37
1

Explicație

Pornind de la numărul inițial X = 51, secvența magică generată conform regulilor este 53,59,61,67,71,73,...53, 59, 61, 67, 71, 73,. . .

  • Inițial X=51X = 51.
  • După primul ritual XX devine 51+53=10451 + 53 = 104
  • După al doilea ritual XX devine 10459=45104 - 59 = 45
  • După al treilea ritual XX devine 45+61=10645 + 61 = 106
  • După al patrulea ritual XX devine 10667=39106 - 67 = 39
  • După al cincilea ritual XX devine 39+71=11039 + 71 = 110
  • După al șaselea ritual XX devine 11073=37110 - 73 = 37, al cărui modul este un număr prim.

Exemplul 3

prime.in

47797 3

prime.out

95596
0

Explicație

Pornind de la numărul inițial X=47 797X = 47 \ 797, secvența magică generată conform regulilor este 47 797,47 807,47 809,...47 \ 797, 47 \ 807, 47 \ 809,. . .

  • Inițial X=47 797X = 47 \ 797
  • După primul ritual XX devine 47 797+47 797=95 59447 \ 797 + 47 \ 797 = 95 \ 594
  • După al doilea ritual XX devine 95 60447 807=47 78795 \ 604 - 47 \ 807 = 47 \ 787
  • După al treilea ritual XX devine 47 787+47 809=95 59647 \ 787 + 47 \ 809 = 95 \ 596

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