SufixeShnasty

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

Cerință

Un număr este "shnasty" dacă este nenul și are număr impar de divizori.
De exemplu 11 și 99 sunt numere shnasty dar 66 sau 1111 nu sunt.

Un sufix al unui număr este orice parte obținută păstrând ultimele câteva cifre ale lui.
De exemplu sufixele numărului 43414341 sunt: 43414341, 341341, 4141 și 11.

Se dă NN precum și NN numere, pentru fiecare număr trebuie să spunem câte dintre sufixele lui sunt shnasty.

Date de intrare

Pe prima linie se găsește NN. Pe următoarele NN rânduri se va afla câte un număr pentru care trebuie să rezolvăm problema.

Date de ieșire

Se vor afișa NN rânduri, numărul de prefixe shansty ale fiecărui număr.

Restricții și precizări

  • 1N21051 \leq N \leq 2*10^5;
  • 11 \leq Numerele citite 1012\leq 10^{12};
  • Dacă cumva sufixul numărului începe cu 00 dar este nenul, va fi considerat valid. De exemplu: pentru că 1616 este shnasty numărul 10161016 are două sufixe shnasty: 016016 și 1616, ambele numere în bază 1010 reprezintă valoarea 1616.

Subtaskuri

  • Pentru 10p:N=110p : N = 1 și numărul citit are maxim 66 cifre.
  • Pentru alte 20p:20p : Numerele citite au maxim 44 cifre
  • Pentru alte 40p:40p : Numerele citite au maxim 66 cifre

Exemplul 1

stdin

7
100
316
464
332
281
121
225

stdout

1
1
2
0
2
2
2

Explicație

De exemplu:
100100 are sufixele: 100100, 00 și 00. Singurul shnasty este 100100 (trebuie să fie nenule).
316316 are ca sufix shnasty, sufixul 1616.
332332 nu are niciun sufix shnasty.
121121 are sufixele shnasty 121121 și 11.
225225 are sufixele shnasty 225225 și 2525.

Exemplul 2

stdin

1
81225

stdout

4

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