Maximum Prime Factor

Time limit: 0.5s Memory limit: 64MB Input: Output:

Cerință

Fie XX un număr natural nenul și pp cel mai mare factor prim din descompunerea în factori primi a lui XX. Pentru X=1X = 1, considerăm p=1p = 1. Asupra lui XX se pot efectua următoarele două operații:

Operația 1: XX se împarte la pp și devine X/pX/p.
Operația 2: XX devine XkX \cdot k, unde kk este un număr prim și mai mare sau egal decât pp.

Se dau QQ perechi de numere naturale nenule (X,Y)(X,Y). Să se determine, pentru fiecare pereche, numărul minim de operații necesare pentru a îl transforma pe XX în YY.

Date de intrare

Datele de intrare conțin Q+1Q + 1 linii. Pe prima linie se găsește QQ, reprezentând numărul de perechi (X,Y)(X, Y). Pe următoarele QQ linii, câte o pereche de numere naturale nenule XX și YY, despărțite printr-un singur spațiu.

Date de ieșire

Ieșirea va conține QQ linii. Pe fiecare linie ii se va scrie câte un număr natural reprezentând numărul de operații determinat pentru a ii-a pereche.

Restricții și precizări

  • 1Q1 000 0001 \leq Q \leq 1 \ 000 \ 000;
  • 1X,Y4 000 0001 \leq X, Y \leq 4 \ 000 \ 000;
  • Această problemă are scoruri individuale pe teste.
# Punctaj Restricții
1 24 1X,Y,Q1 0001 \leq X, Y, Q \leq 1 \ 000
2 48 1X,Y100 0001 \leq X, Y \leq 100 \ 000
3 28 Nu există restricții suplimentare.

Exemplu

stdin

4
4 10 
2 9
6 2 
12 12

stdout

2
3
1
0

Explicație

Pentru (4,10)(4, 10): 44 devine 22 utilizând o Operație 1, apoi devine 1010 utilizând o Operație 2.
Pentru (2,9)(2, 9): 22 devine 11 utilizând o Operație 1, apoi devine 33 folosind o Operație 2 și devine 99 folosind o Operație 2.
Pentru (6,2)(6, 2): 66 devine 22 folosind o Operație de tip 1.
Pentru (12,12)(12, 12): Numerele sunt egale, nu este necesară nicio operație.

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