manish icon

product equals sum [partial]

manish | PRO | 12/13/22 07:11:00 AM UTC (Edited) | 0 ⭐ | 849 👁️ | Never ⏰ | []
Python |

1.08 KB

|

None

|

0 👍

/

0 👎

from math import log2
 
def Sieve(limit=10**6):
    """Uses Sieve algorithm and stores a factor of each number!
        If isPrime[i] = 1, the number 'i' is prime."""
    isPrime = [1] * (limit + 1)
    isPrime[0] = isPrime[1] = 0
    for i in range(2, limit + 1):
        if isPrime[i] != 1:continue
        for j in range(i * i, limit + 1, i):
            if isPrime[j] == 1:isPrime[j] = i
    return isPrime
 
def get_prime_factors(n, isPrime):
    """Returns prime factorisation of n."""
    if n < 2:
        return []
    result = []
    while isPrime[n] != 1:
        result += [isPrime[n]]
        n //= isPrime[n]
    result += [n]
    return result
 
isPrime = Sieve(10**6)
 
def solve(n):
    if n == 2:
        return 1
    minimumOnes, maximumOnes = n - 1 - int(log2(n)), n - 2
    for ones in range(minimumOnes, maximumOnes + 1):
        remaining = n - ones
        for product in range(n + 1, 2 * n + 1):
            req_sum = product - ones
            factors = get_prime_factors(req_sum, isPrime)
 
for i in range(2, 100000):
    print(i, "->", solve(i))
 
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎