def taj(x): # تجزیه
    a = adada(x)
    w = []
    n = 0
    for i in range(len(a)):
        while x % a[i] == 0:
            x /= a[i]
            n += 1
            w.append(a[i])
    return w
def bmm(b, c): # ب.م.م
    n = 1
    a = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113]
    for i in range(len(a)):
        while b % a[i] == 0 and c % a[i] == 0:
            b /= a[i]
            c /= a[i]
            n *= a[i]
    return n
def kmm(d, e): # ک.م.م
    zarb = d * e
    n = 1
    a = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113]
    for i in range(len(a)):
        while d % a[i] == 0 and e % a[i] == 0:
            d /= a[i]
            e /= a[i]
            n *= a[i]
    mm = zarb / n
    kmm = int(mm)
    return kmm
def fact(f): # فاکتوریل
    n = 1
    for i in range(1, f + 1):
        n *= i
    return n
def jazr(f, g): # رادیکال
    return g ** (1/f)
def tav(h, i): # توان
    return h ** i
def adada(k): # اعداد اول ۲ تا...
    a = [2]
    for i in range(3, k + 1):
        m = False
        for j in range(len(a)):
            if i % a[j] == 0:
                m = True
                break
        if m == False:
            a.append(i)
    return a
def ghar(l, m): # قرینه نسبت به ...
    a = [l, m]
    b = max(a)
    c = min(a)
    s = b - c
    if (l <= 0 and m >= 0) or (l >= 0 and m >= 0 and l < m):
        return m + s
    elif (l >= 0 and m <= 0) or (l <= 0 and m <= 0) or (l >= 0 and m >= 0 and l > m):
        return m - s
def Learn(): # آموزش
    print("import math_lib as mb")
    print("\nfb.taj(number) # Tajzie")
    print("fb.bmm(number1, number2) # B.M.M")
    print("fb.kmm(number1, number2) # K.M.M")
    print("fb.fact(number) # Factoriel")
    print("fb.jazr(forje, number)")
    print("fb.tav(number1, number2) # number1 ** number2")
    print("fb.adada(number) # Adaad avval 2 __ number")
    print("fb.ghar(number1, number2) # Gharine number1 --> number2")