Xorin se plimba pe stradă când a dat peste un șir de numere naturale. Curios din fire, acesta vrea să aplice operații alchimice fiecărui element din șir. Singura operație alchimică știută de el este "solve et coagula" (dizolvă și coagulează), învățată dintr-un eseu despre Harap Alb. Procedeul "solve et coagula" este următorul: se ia un număr natural, de exemplu , se descompune în factori primi (), iar rezultatul se obține din suma xor a acestor factori primi, luați o singură dată ().
Xorin aplică procedeul "solve et coagula" fiecărui element din șirul , obținând un nou șir (elementului îi corespunde elementul ).
Cerință
Roxana găsește noul șir și vă adresează o întrebare: câte perechi de indici , unde , există, cu proprietatea că suma xor a elementelor , cu , este ?
Date de intrare
Prima linie conține numărul natural . A doua linie conține numere naturale, elementele șirului inițial .
Date de ieșire
Fișierul de ieșire va conține pe prima linie numărul de perechi de indici , cu proprietatea specificată anterior.
Restricții și precizări
- , oricare ar fi .
- Aplicarea procedeului pentru valoarea va da ca rezultat .
- Pentru teste în valoare de puncte, și .
- Pentru teste în valoare de de puncte, și .
- Pentru teste în valoare de puncte, și și toate numerele sunt prime.
- Pentru teste în valoare de de puncte, nu există restricții suplimentare.
- Operaţia xor reprezintă operaţia de disjuncţie exclusivă. Tabelul de mai jos reprezintă tabelul acestei operatii, pentru 2 biţi.
- În cazul acestei probleme, operaţia xor se realizează pe biţii operanzilor. De exemplu, ().
- Prin suma xor a numere , se înțelege rezultatul obținut prin aplicarea succesivă a operației xor între acestea: .
- În C/C++, operatorul pentru xor este
^
, iar în Pascal, operatorul corespunzător estexor
.
Exemplul 1
basme.in
3
236 23 410
basme.out
1
Explicație
are factorii primi și , deci . este prim, deci . , deci . Astfel, șirul este . Singura subsecvență continuă care are suma xor este , deci răspunsul este .
Exemplul 2
basme.in
10
84 4 5 6 10 225 2 13 15 26
basme.out
3
Explicație
Șirul inițial se transformă în următorul șir : . Subsecvențele , și au suma xor . Astfel, pentru acest șir, sunt perechi de indici care respectă proprietatea cerută: , și .