32 lines
710 B
Python
32 lines
710 B
Python
# HumanEval/59
|
|
# Loki Mode Multi-Agent Solution
|
|
# Attempts: 1
|
|
# Passed: True
|
|
|
|
def largest_prime_factor(n: int):
|
|
"""Return the largest prime factor of n. Assume n > 1 and is not a prime.
|
|
>>> largest_prime_factor(13195)
|
|
29
|
|
>>> largest_prime_factor(2048)
|
|
2
|
|
"""
|
|
largest = 1
|
|
|
|
# Divide out all factors of 2
|
|
while n % 2 == 0:
|
|
largest = 2
|
|
n //= 2
|
|
|
|
# Check odd factors starting from 3
|
|
factor = 3
|
|
while factor * factor <= n:
|
|
while n % factor == 0:
|
|
largest = factor
|
|
n //= factor
|
|
factor += 2
|
|
|
|
# If n is still greater than 1, it's a prime factor
|
|
if n > 1:
|
|
largest = n
|
|
|
|
return largest |