<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2239_-_pow2</id>
	<title>2239 - pow2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2239_-_pow2"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2239_-_pow2&amp;action=history"/>
	<updated>2026-05-01T17:48:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2239_-_pow2&amp;diff=9040&amp;oldid=prev</id>
		<title>Brianna Waltner: Pagină nouă: Se consideră un șir &#039;&#039;&#039;a[1]&#039;&#039;&#039;, &#039;&#039;&#039;a[2]&#039;&#039;&#039;,…, &#039;&#039;&#039;a[n]&#039;&#039;&#039; de numere naturale nenule. == Cerinţa == Să se determine câte perechi de indici &#039;&#039;&#039;(i, j)&#039;&#039;&#039;, &#039;&#039;&#039;1 &amp;les; i &lt; j &amp;les; n&#039;&#039;&#039;, există cu proprietatea că suma &#039;&#039;&#039;a[i] + a[j]&#039;&#039;&#039; este egală cu o putere a lui &#039;&#039;&#039;2&#039;&#039;&#039;. == Date de intrare == Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar apoi cele &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale nenule, separate prin spații. == Date de ieșire == Programul va afișa pe ecran un sing...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2239_-_pow2&amp;diff=9040&amp;oldid=prev"/>
		<updated>2024-01-04T22:58:52Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se consideră un șir &amp;#039;&amp;#039;&amp;#039;a[1]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;a[2]&amp;#039;&amp;#039;&amp;#039;,…, &amp;#039;&amp;#039;&amp;#039;a[n]&amp;#039;&amp;#039;&amp;#039; de numere naturale nenule. == Cerinţa == Să se determine câte perechi de indici &amp;#039;&amp;#039;&amp;#039;(i, j)&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1 ⩽ i &amp;lt; j ⩽ n&amp;#039;&amp;#039;&amp;#039;, există cu proprietatea că suma &amp;#039;&amp;#039;&amp;#039;a[i] + a[j]&amp;#039;&amp;#039;&amp;#039; este egală cu o putere a lui &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar apoi cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale nenule, separate prin spații. == Date de ieșire == Programul va afișa pe ecran un sing...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se consideră un șir &amp;#039;&amp;#039;&amp;#039;a[1]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;a[2]&amp;#039;&amp;#039;&amp;#039;,…, &amp;#039;&amp;#039;&amp;#039;a[n]&amp;#039;&amp;#039;&amp;#039; de numere naturale nenule.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Să se determine câte perechi de indici &amp;#039;&amp;#039;&amp;#039;(i, j)&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1 &amp;amp;les; i &amp;lt; j &amp;amp;les; n&amp;#039;&amp;#039;&amp;#039;, există cu proprietatea că suma &amp;#039;&amp;#039;&amp;#039;a[i] + a[j]&amp;#039;&amp;#039;&amp;#039; este egală cu o putere a lui &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar apoi cele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale nenule, separate prin spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran un singur număr natural reprezentând numărul de perechi de indici distincți &amp;#039;&amp;#039;&amp;#039;(i, j)&amp;#039;&amp;#039;&amp;#039; cu proprietatea că suma &amp;#039;&amp;#039;&amp;#039;a[i] + a[j]&amp;#039;&amp;#039;&amp;#039; este egală cu o putere a lui &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2 &amp;amp;les; n &amp;amp;les; 100.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;amp;les; a[i] &amp;amp;les; 1.000.000.000&amp;#039;&amp;#039;&amp;#039;, pentru orice &amp;#039;&amp;#039;&amp;#039;i = 1..n&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Numerele care sunt puteri ale lui &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; sunt &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;8&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;16&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;32&amp;#039;&amp;#039;&amp;#039;, …&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
 4&lt;br /&gt;
 3 5 3 13&lt;br /&gt;
;Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 4&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
 210000&lt;br /&gt;
 16 17 20 24 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105&lt;br /&gt;
;Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def is_power_of_two(num):&lt;br /&gt;
    return (num != 0) and (num &amp;amp; (num-1) == 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
num_elements = int(input().strip())&lt;br /&gt;
if not (2 &amp;lt;= num_elements &amp;lt;= 100000):&lt;br /&gt;
    print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
    exit(1)&lt;br /&gt;
a = sorted(list(map(int, input().split())))&lt;br /&gt;
if any(ai &amp;lt; 1 or ai &amp;gt; 1000000000 for ai in a):&lt;br /&gt;
    print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
    exit(1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
count = 0&lt;br /&gt;
for i in range(num_elements):&lt;br /&gt;
    for j in range(i+1, num_elements):&lt;br /&gt;
        if is_power_of_two(a[i] + a[j]):&lt;br /&gt;
            count += 1&lt;br /&gt;
&lt;br /&gt;
print(count)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
 Cele patru perechi de indici sunt: &amp;#039;&amp;#039;&amp;#039;(1,2)&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;(1,4)&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;(2,3)&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;(3,4)&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Brianna Waltner</name></author>
	</entry>
</feed>