2568 - Cub Prim: Difference between revisions

From Bitnami MediaWiki
Raul (talk | contribs)
Pagină nouă: Definim prin număr '''cubprim''', numărul natural obținut dintr-un număr prim la puterea a treia. = Cerința = Se dă un șir de <code>N</code> numere naturale oarecare . <code>a)</code> Să se afișeze <code>M</code> – numărul de numere '''cubprim'''. <code>b)</code> Să se afișeze pe următoarele <code>M</code> linii, descrescător după valoarea numărului '''cubprim''' de la cerința <code>a)</code>, poziția pe care se află acest număr, numărul prim din car...
Tag: visualeditor
 
Raul (talk | contribs)
No edit summary
Tag: visualeditor
 
Line 34: Line 34:


=== Lipește codul aici ===
=== Lipește codul aici ===
1
<syntaxhighlight lang="python" line="1">
​a = [0] * 100005
​a = [0] * 100005
 
b = [0] * 100005
b = [0] * 100005
c = [0] * 100005
 
d = [0] * 100005
c = [0] * 100005
n = int(input())
 
for i in range(1, n+1):
d = [0] * 100005
    a[i] = int(input())
 
for i in range(1, n+1):
n = int(input())
    b[i] = int(input())
 
for i in range(1, n+1):
for i in range(1, n+1):
    c[i] = int(input())
 
cnt = 0
    a[i] = int(input())
i = 1
 
j = 1
for i in range(1, n+1):
while i <= n and j <= n:
 
    if a[i] == b[j]:
    b[i] = int(input())
        cnt += 1
 
        d[cnt] = a[i]
for i in range(1, n+1):
        i += 1
 
        j += 1
    c[i] = int(input())
    elif a[i] < b[j]:
 
        i += 1
cnt = 0
    else:
 
        j += 1
i = 1
i = 1
 
j = 1
j = 1
rez = -1
 
while i <= n and j <= cnt:
while i <= n and j <= n:
    if c[i] == d[j]:
 
        rez = c[i]
    if a[i] == b[j]:
        break
 
    if c[i] < d[j]:
        cnt += 1
        i += 1
 
    else:
        d[cnt] = a[i]
        j += 1
 
print(rez)
        i += 1
</syntaxhighlight>
 
        j += 1
 
    elif a[i] < b[j]:
 
        i += 1
 
    else:
 
        j += 1
 
i = 1
 
j = 1
 
rez = -1
 
while i <= n and j <= cnt:
 
    if c[i] == d[j]:
 
        rez = c[i]
 
        break
 
    if c[i] < d[j]:
 
        i += 1
 
    else:
 
        j += 1
 
print(rez)

Latest revision as of 13:57, 14 December 2023

Definim prin număr cubprim, numărul natural obținut dintr-un număr prim la puterea a treia.

Cerința[edit]

Se dă un șir de N numere naturale oarecare . a) Să se afișeze M – numărul de numere cubprim. b) Să se afișeze pe următoarele M linii, descrescător după valoarea numărului cubprim de la cerința a), poziția pe care se află acest număr, numărul prim din care este format, precum și numărul cubprim astfel găsit.

Date de intrare[edit]

Fișierul de intrare cubprim.in conține pe prima linie numărul N, iar pe a doua linie N numere naturale separate prin spații.

Date de ieșire[edit]

În fișierul cubprim.out se afișează pe prima linie numărul de elemente găsite conform cerinței a).

Pe următoarele M linii se afișază elementele găsite, separate printr-un spațiu conform cerinței b).

Exemplu:[edit]

cubprim.in

10
5 23 8 7 32 121 27 14 64 8

cubprim.out

3
7 3 27
3 2 8
10 2 8

Explicație[edit]

a) Avem 3 numere care respectă cerința : 8, 27 și 8. Unde 8 este cubul lui 2 și 27 al lui 3. Se observă că în șir apare și 64 care este cubul lui 4 dar numărul 4 nu este prim.

b) Cubul cel mai mare format dintr-un număr prim este 27, poziția lui în șir este 7, urmat de numărul prim 3 care formează acest cub (3 * 3 * 3 = 27). Ultimele două linii sunt formate de numărul 8 găsit de două ori in șir, prima dată pe poziția 3 și apoi pe poziția 10.


Încărcare soluție[edit]

Lipește codul aici[edit]

<syntaxhighlight lang="python" line="1"> ​a = [0] * 100005 b = [0] * 100005 c = [0] * 100005 d = [0] * 100005 n = int(input()) for i in range(1, n+1):

   a[i] = int(input())

for i in range(1, n+1):

   b[i] = int(input())

for i in range(1, n+1):

   c[i] = int(input())

cnt = 0 i = 1 j = 1 while i <= n and j <= n:

   if a[i] == b[j]:
       cnt += 1
       d[cnt] = a[i]
       i += 1
       j += 1
   elif a[i] < b[j]:
       i += 1
   else:
       j += 1

i = 1 j = 1 rez = -1 while i <= n and j <= cnt:

   if c[i] == d[j]:
       rez = c[i]
       break
   if c[i] < d[j]:
       i += 1
   else:
       j += 1

print(rez) </syntaxhighlight>