Primfaktorisierung unter Verwendung von Listenverständnis in Python

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Primfaktorisierung unter Verwendung von Listenverständnis in Python

by Anonymous » 17 Feb 2025, 10:55

wie man eine Funktion schreibt, die eine Liste von Tupeln wie (c i , k i ) für n zurückgibt, so dass n = c 1 k 1 c 2 k 2 ... c i k i Ist eine Primzahl? · 3 2 · 5 2 · 7 1
gewünschte Ausgabe: [(2, 3) , (3, 2), (5, 2), (7, 1)]
Ich weiß, wie es geht, während Aber Ist es möglich, dies mit Listenverständnis zu tun? Effizienz ist in dieser Aufgabe nicht erforderlich.

Code: Select all

# naive function
def is_prime(n):
return n > 1 and all(n % i != 0 for i in range(2, n))

# while version
def factorization_while(n):
res = []
for i in range(1, n + 1):
if is_prime(i):
j = 0
while n % i == 0:
n = n // i
j += 1
if j != 0:
res.append((i, j))
return res

# list comprehension version
def factorization(n):
return [
(i, j) for i in range(1, n + 1) if is_prime(i) \
and n % i == 0 ... # add smth
]

Top