Zadanie

„A ostatní?“ prerušil Sherlock Remiho monológ. „Kedy ste prišli Vy na miesto činu, pán gróf?“

„Viete, ja si nepamätám, bol to vcelku šokujúci nález. Som si však istý, že som prišiel okamžite po pánovi exekútorovi.“

„A Vy, pane?“ opýtal sa Sherlock sluhu.

Sluha, vytrhnutý z driemot, sa spamätal. „No… Ja som bol na mieste činu skoro naraz s Remim, pán detektív. Nie som si istý, či som prišiel tesne pred ním, alebo tesne po ňom.“

Teraz sa už Sherlock skutočne začal blížiť k riešeniu. Jeho myseľ totiž pracuje ako počítač – v binárnej sústave. Riešenie prípadu si môžeme predstaviť ako kladné celé číslo \(n\). Povieme, že číslo \(n\) je blízko, ak jeho zápis v dvojkovej sústave končí na jeho zápis v desiatkovej sústave. Napr. číslo \(10\) zapíšeme v dvojkovej sústave ako \(1010\), čo končí ciframi \(10\). Takže číslo \(10\) je blízko. Nájdite všetky kladné celé čísla \(n\), ktoré sú blízko a v desiatkovej sústave majú najviac dve cifry \(1\).

Uvedomme si, že aby číslo bolo blízko, musí jeho desiatkový zápis obsahovať iba nuly a jednotky – inak by ním totiž nemohol končiť jeho dvojkový zápis. Navyše, hľadáme iba také prirodzené čísla poblíž, ktoré obsahujú v desiatkovej sústave najviac dve jednotky. Preto riešeniami môžu byť iba čísla tvaru \(10^k\) a \(10^k+10^l\) pre \(k>l\) nezáporné celé.

Ak \(n=10^k\), tak v desiatkovej sústave pozostáva z jednotky a \(k\) núl. V dvojkovej sústave však tiež musí končiť \(k\) nulami, keďže \(2^k\mid 10^k\). Navyše, keďže \(2\) a \(5\) sú nesúdeliteľné, tak \(2^{k+1}\nmid 10^k\), čo znamená, že cifra naľavo od týchto \(k\) núl musí byť jednotka. Tým dostávame, že všetky mocniny desiatky sú blízko.

Uvažujme teraz \(n=10^k+10^l\) s \(k>l\), ktoré je blízko. Keď z jeho dvojkového zápisu odstránime \((k+1)\)-vú a \((l+1)\)-vú cifru sprava, musí končiť \(k+1\) nulami. To však znamená, že \(n-2^k-2^l\) je deliteľné \(2^{k+1}\). Vieme však, že \(10^k-2^k=2^k\cdot(5^k-1)\) je násobkom \(2^{k+1}\), keďže \(5^k-1\) je vždy párne. Preto nám stačí nájsť také dvojice \(k, l\), že \[\begin{align} 2^{k+1}&\mid 10^l-2^l,\\ 2^{k-l+1}&\mid 5^l-1.\end{align}\] To nám pripomína známy vzťah \(5^l-1=(5-1)(5^{l-1}+5^{l-2}+\cdots+5+1)\). Všimnime si, že pre nepárne \(l\) máme v druhej zátvorke nepárny počet nepárnych sčítancov, čiže táto zátvorka nemôže byť párna. Javí sa teda, že je prospešné si rozložiť exponent \(l\) na párnu a nepárnu časť – preto nech \(l=2^a\cdot b\), kde \(b\) je nepárne. Potom \[\begin{align} 5^l-1=\left(5^{2^a}\right)^b-1=\left(5^{2^a}-1\right)(\text{nepárny počet nepárnych sčítancov})=\left(5^{2^{a-1}}+1\right)\left(5^{2^{a-1}}-1\right)\cdot(\text{nepárne číslo}).\end{align}\] Všimnime si, že prvé dve zátvorky sú obe párne. Navyše sa líšia o \(2\), takže práve jedna z nich je deliteľná \(4\). Avšak, \(5^{2^{a-1}}-1=\left(5^{2^{a-2}}-1\right)\left(5^{2^{a-2}}+1\right)\) musí byť deliteľná \(4\), a teda \(\left(5^{2^a-1}+1\right)\) má v prvočíselnom rozklade práve jednu dvojku. Takto vieme pokračovať, čím dostaneme \[\begin{align} 5^{2^a}-1&=\left(5^{2^{a-1}}+1\right)\left(5^{2^{a-1}}-1\right)=\left(5^{2^{a-1}}+1\right)\left(5^{2^{a-2}}+1\right)\left(5^{2^{a-2}}-1\right)=\cdots=\\ &=\left(5^{2^{a-1}}+1\right)\left(5^{2^{a-2}}+1\right)\cdots\left(5^{2^1}+1\right)\left(5^{2^0}+1\right)\left(5^{2^0}-1\right).\end{align}\] Ako sme už povedali vyššie, prvých \(a-1\) zátvoriek má v prvočíselnom rozklade práve jednu dvojku. A súčin posledných dvoch, \(6\cdot4=2^3\cdot3\) ich obsahuje práve \(3\). Preto sa dvojka v prvočíselnom rozklade \(5^l-1\) nachádza presne \((a+2)\)-krát1. My však potrebujeme, aby to bolo aspoň \(k-l+1\), z čoho dostávame \[\begin{align} k-2^a\cdot b+1&\leq a+2,\\ k&\leq 2^a\cdot b+a+1. \end{align}\] Navyše vieme, že \(k>l\), a teda v tejto vetve úlohu spĺňajú všetky čísla tvaru \(10^{2^a\cdot b+c+1}+10^{2^a\cdot b}\), kde \(a, b, c\) sú nezáporné celé čísla, pričom \(c\leq a\) a \(b\) je nepárne.

Nezabudnime však na jeden špeciálny prípad, a to \(l=0\). Vtedy ho totiž nevieme zapísať v tvare \(2^a\cdot b\), keďže nejde o prirodzené číslo. Je však zrejmé, že podobne ako pri mocninách desiatky, číslo \(10^k+1\) končí v dvojkovej sústave na svoj zápis v desiatkovej sústave pre všetky \(k\geq1\).


  1. Toto pozorovanie sa dalo urobiť aj využitím \(p\)-valuácií a Lifting The Exponent lemmy, o ktorých si môžete prečítať napríklad na https://drive.google.com/file/d/1t0Qhmxsw5n2b_G-dXmdrhT4YL719XgOf/view?usp=drive_link.↩︎

Diskusia

Tu môžte voľne diskutovať o riešení, deliť sa o svoje kusy kódu a podobne.

Pre pridávanie komentárov sa musíš prihlásiť.