Sophie

Time limit: 1s Memory limit: 64MB Input: sophie.in Output: sophie.out

Cerință

Un număr ii este numit număr Sophie Germain dacă ii este prim și 2i+12 \cdot i + 1 este, de asemenea, prim.
Se poate generaliza acest concept astfel: ii este considerat număr kk-Sophie Germain dacă ii este prim și ik+1i \cdot k+1 este, de asemenea, prim, pentru un număr kk natural nenul, k>2k \gt 2.

  1. Dându-se un număr natural nenul nn, să se calculeze câte numere Sophie Germain există între 11 și nn.
  2. Dându-se două numere naturale nenule nn și kk, să se calculeze câte numere kk-Sophie Germain există între 11 si nn.

Date de intrare

Pe prima linie a fișierului de intrare sophie.in se găsește un număr natural cc, care poate să fie doar 11 sau 22, reprezentând numărul cerinței de rezolvat.

Dacă cerința este c=1c=1, pe a doua linie se găsește un număr natural nenul nn, cu semnificația din enunț.
Dacă cerința este c=2c=2, pe a doua linie se găsesc două numere naturale nenule nn și kk, separate printr-un spațiu, cu semnificația din enunț.

Date de ieșire

În fișierul sophie.out se va afișa un număr natural care reprezintă numărul cerut.

Restricții și precizări

  • 1n,k1061 \leq n, k \leq 10^6;
  • Pentru prima cerință (c=1c=1) se acordă 4040 puncte.
  • Pentru a doua cerință (c=2c=2) se acordă 6060 puncte. Dintre acestea, pentru 1515 puncte, kk este impar. Pentru alte 1515 puncte, nk106n \cdot k \leq 10^6.

Exemplul 1

sophie.in

1
10

sophie.out

3

Explicație

Cerința este 1.
Numerele Sophie Germain între 11 și 1010 sunt:

  • 22: 22 este prim, iar 22+1=52 \cdot 2+1=5 și 55 este prim.
  • 33: 33 este prim, 32+1=73 \cdot 2+1=7, iar 77 este prim.
  • 55: 55 este prim, iar 52+1=115 \cdot 2 + 1 = 11, unde 1111 este prim.

Exemplul 2

sophie.in

2
10 20

sophie.out

3

Explicație

Cerința este 2.
Singurele numere care respectă condiția între 11 și 1010 sunt:

  • 22 (22 este prim și 220+1=412 \cdot 20+1=41 este prim);
  • 33 (33 este prim și 6161 este număr prim);
  • 55 (55 este prim și 101101 este număr prim).

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