Пример #1
0
def s(n):
    l = decompose_tout(n, l_8)
    maxi = 0
    for p, k in l:
        m = f(p, k)
        if m > maxi:
            maxi = m
    return maxi
Пример #2
0
def aux(n):
    l = []
    for a in range(1, n + 1):
        if n % a == 0:
            for o, i in decompose_tout(a):
                if i < 3:
                    break
            else:
                l.append(a)
    return l
Пример #3
0
 def circumference(n):  # give the number of x,  y such that x**2+y**2 = n
     l = decompose_tout(n)
     B = 1
     for p, a in l:
         if p == 2:
             continue
         if p % 4 == 1:
             B *= a + 1
         elif a % 2 == 1:
             return 0
     return B * 4
Пример #4
0
    def nb_ok(n):
        l = decompose_tout(n, l_p)
        n_l = len(l)

        l2 = []
        nb_div = 0
        for i in range(n_l):
            l2.append(list(range(l[i][1] + 1)))
        for c in product(*l2):
            a = 1
            for i in range(n_l):
                a *= l[i][0]**c[i]
            if 3 * a**2 - n > 0:
                nb_div += 1
        return nb_div
Пример #5
0
def decompose_B(n, d, df):
    ln = decompose_tout(n, lp)
    for p, a in ln:
        if p in d:
            d[p] += a * n
        else:
            d[p] = a * n

        if p in df:
            df[p] += a
        else:
            df[p] = a
    for p in df:
        d[p] -= df[p]

    return sigma(d)
Пример #6
0
def s(n):
    if n in l_set:
        return n
    d = dict(decompose_tout(n, l))
    nb_tot = sum(d.values())
    m = 1
    nb = 0
    while nb < nb_tot:
        m += 1
        for p in d:
            mm = m
            while mm % p == 0 and d[p] > 0:
                mm //= p
                nb += 1
                d[p] -= 1
    return m
Пример #7
0
from Tools import decompose_tout, bezout, numpy_sieve

l7 = numpy_sieve(10**7)

a = 1
mod = 1000000087
ss = 0
d = {}
for n in range(2, 10**7 + 1):
    lp = decompose_tout(n, l7)
    for p, i in lp:
        if p in d:
            a *= bezout(mod, 1 + 2 * d[p])[0]
            d[p] += i
            a *= 1 + 2 * d[p]
        else:
            d[p] = i
            a *= 1 + 2 * d[p]
        a %= mod
    ss += a
    ss %= mod
print(ss)
# sol = 416146418
Пример #8
0
def div(n):
    ll = decompose_tout(n)
    for p_a in f(ll):
        yield compute(p_a)
Пример #9
0
# %% Problem 245

# C(n) can not be an unit fraction if n = p^k * a with k > 1 and p prime

from Tools import is_prime, phi, decompose_tout


def unit_co_resilience(n):
    return (n - 1) % (n - phi(n)) == 0


s = 0
for i in range(2, 2 * 10**11 + 1):
    if not is_prime(i):
        if unit_co_resilience(i):
            s += i
            l = [b for a, b in decompose_tout(i)]
            if l.count(1) != len(l):
                print(i)
Пример #10
0
k = 1
a = 3 * c - k  # that is the sol.
b = 7 * c - 2 * k  # gcd(b, a) = gcd(b-2a, a) = gcd(c, 3c-1)=gcd(c, c-1)=1

# sol = 428570

# %% Problem 72

d = dict()
l_erato = numpy_sieve(10**6)
for i in l_erato:
    d[i] = i - 1

s = 0
for i in range(2, 10**6 + 1):
    ll = decompose_tout(i, l_erato)
    p = 1
    for i, k in ll:
        p *= (i**(k - 1)) * d[i]
    s += p

# %% Problem 73


def gcd(a, b):
    if a < b:
        r = b % a
        return gcd(a, r)
    elif b == a:
        return b
    elif b == 0:
Пример #11
0
 def nb_div(n):
     l2 = decompose_tout(n, primes)
     a = 1
     for c in l2:
         a *= c[1] + 1
     return a