#0007EB

XORovanje delilaca

Miközben Dóra a természetben sétált és rókákat figyelt, egy eldobott papírlapot talált, amelyen egy n szám, és k darab különböző d_1, d_2, \ldots, d_k szám volt felírva. Ezek a számok érdekesnek tűntek számára, ezért megpróbálta kideríteni a jelentésüket. Rájött, hogy a \{d_1, d_2, \ldots, d_k\} számhalmaz megegyezik az n szám összes osztójának halmazával. Más szóval, minden 1 \le i \le k esetén érvényes, hogy d_i osztója n-nek. Továbbá igaz minden pozitív egész x számra, amely osztója n-nek, hogy létezik egy egyedi 1 \le i \le k index, amelyre d_i = x.


A \text{xor\_delilaca} (x) függvény az x szám összes osztójának kizáró vagy művelete. Formálisan, legyenek a d_1, d_2, \ldots d_k számok az x szám összes osztói. Ekkor: \text{xor\_delilaca} (x) = d_1\ \text{xor}\ d_2\ \text{xor}\ \ldots\ \text{xor}\ d_k.


Dóra szeretné meghatározni a \text{xor\_delilaca} függvény értékét az összes d_1, d_2, \ldots, d_k értékre. Mivel a természetben van és nincs számítógép közelében, a számok pedig nagyon nagyok, titeket kért meg, hogy segítsetek neki.


A bemenet leírása


A szabványos bemenet első sora két számot tartalmaz: n-t (a feladat szövegében szereplő n számot) és k-t (az n szám osztóinak számát).


A szabványos bemenet második sorában k szám található (d_1, d_2, \ldots, d_k) – az n szám összes osztója.


A kimenet leírása


A szabványos kimenet egyetlen sorában k számot kell kiírni. Közülük az i-edik szám értéke \text{xor\_delilaca}(d_i) kell hogy legyen.


1. példa


Bemenet


1 1
1


Kimenet


1

A példa magyarázata

Az 1 szám еgyetlen osztója 1, ezért: \text{xor\_delilaca}(1) = 1.


2. példa


Bemenet


12 6
12 1 3 6 2 4  


Kimenet


14 1 2 6 3 7

A példa magyarázata

A 12 szám osztói: 1, 2, 3, 4, 6 és 12, ezért: \text{xor\_delilaca}(12) = 1\ \text{xor}\ 2\ \text{xor}\ 3\ \text{xor}\ 4\ \text{xor}\ 6\ \text{xor}\ 12 = 14.

Az 1 szám egyetlen osztója 1, ezért: \text{xor\_delilaca}(1) = 1.

A 3 szám osztói 1 és 3, ezért: \text{xor\_delilaca}(3) = 1\ \text{xor}\ 3 = 2.

A 6 szám osztói 1, 2, 3 és 6, ezért: \text{xor\_delilaca}(6) = 1\ \text{xor}\ 2\ \text{xor}\ 3\ \text{xor}\ 6 = 6.

A 2 szám osztói 1 és 2, ezért: \text{xor\_delilaca}(2) = 1\ \text{xor}\ 2 = 3.

A 4 szám osztói 1, 2 és 4, ezért: \text{xor\_delilaca}(4) = 1\ \text{xor}\ 2\ \text{xor}\ 4 = 7.


Korlátozások


1 \le n \le 10^{18}

1 \le k \le 10^5

1 \le d_i \le n, minden 1 \le i \le k-ra

A \{d_1, d_2, \ldots, d_k\} számhalmaz megegyezik az n szám összes osztójának halmazával

Az összes d_1, d_2, \ldots d_k szám különböző


A tesztpéldák öt diszjunkt csoportba vannak sorolva::

  • A 10 pontot érő tesztpéldákban: érvényes, hogy n \le 1\ 000
  • A 15 pontot érő tesztpéldákban: érvényes, hogy n \leq 10^5
  • A 15 pontot érő tesztpéldákban: érvényes, hogy n \leq 10^7
  • A 20 pontot érő tesztpéldákban: érvényes, hogy n \le 10^9
  • A 40 pontot érő tesztpéldákban: nincsenek további korlátozások.


Megjegyzés


A kizáró vagy jelölésére Pascal-ban a xor-t használják, míg C++-ban a ^ szimbólummal írjuk le. Az x\ \text{xor} \ y műveletet az x,y nemnegatív számok esetén a folytatásban leírt módon definiálhatjuk. Először a számokat bináris formában kell felírni. Ha egy szám rövidebb, mint a másik, akkor azt vezető nullákkal kell kiegészíteni mindaddig, amig a bináris számjegyek száma nem lesz megegyező. Így a bináris számok két sorozatát kapjuk, amelyekre a_1, \ldots, a_k és b_1, \ldots b_k jelölést használjuk. Majd minden i \in {1, \ldots, k } pozícióra kiszámoljuk a c_i-t az alábbi szabályok mentén:

  • Ha a_{i} = 0, b_{i} = 0, akkor c_{i} = 0
  • Ha a_{i} = 0, b_{i} = 1 akkor c_{i} = 1
  • Ha a_{i} = 1, b_{i} = 0 akkor c_{i} = 1
  • Ha a_{i} = 1, b_{i} = 1 akkor c_{i} = 0

A c_1, \ldots, c_k bináris számjegyekből alkotott sorozat (amely tartalmazhat vezető nullákat is) az eredmény bináris leírása, vagyis az x \ \text{xor} \ y számé.

A kizáró vagy kommutatív és asszociatív művelet, tehát érvényes, hogy:

  • a\ \text{xor} \ b\ =\ b\ \text{xor} \ a
  • (a\ \text{xor} \ b)\ \text{xor} \ c\ =\ a\ \text{xor} \ (b\ \text{xor}\ c)


Submit solution

Sign in to submit a solution.