



'''simple docstring'''





from maths.prime_check import is_prime




def 							lowerCamelCase	(					_snake_case	:    int							):





    '''simple docstring'''


    if not isinstance(_snake_case  ,_snake_case							):
        lowercase__									=    f'''Input value of [number={number}] must be an integer'''
        raise TypeError(_snake_case							)
    if is_prime(_snake_case							) and is_prime(number + 2							):
        return number + 2
    else:
        return -1


if __name__ == "__main__":
 import doctest

 doctest.testmod()









'''simple docstring'''





from __future__ import annotations




def 							lowerCamelCase	(					_snake_case	:    int  ,_snake_case	:    int							):





    '''simple docstring'''


    if b == 0:
        return (1, 0)
    ((lowercase__)							,							(lowercase__))									=    extended_euclid(_snake_case  ,a % b							)
    lowercase__									=    a // b
    return (y, x - k * y)




def 							lowerCamelCase	(					_snake_case	:    int  ,_snake_case	:    int  ,_snake_case	:    int  ,_snake_case	:    int							):





    '''simple docstring'''


    ((lowercase__)							,							(lowercase__))									=    extended_euclid(_snake_case  ,_snake_case							)
    lowercase__									=    na * na
    lowercase__									=    ra * x * na + ra * y * na
    return (n % m + m) % m




def 							lowerCamelCase	(					_snake_case	:    int  ,_snake_case	:    int							):





    '''simple docstring'''


    ((lowercase__)							,							(lowercase__))									=    extended_euclid(_snake_case  ,_snake_case							)
    if b < 0:
        lowercase__									=    (b % n + n) % n
    return b




def 							lowerCamelCase	(					_snake_case	:    int  ,_snake_case	:    int  ,_snake_case	:    int  ,_snake_case	:    int							):





    '''simple docstring'''


    lowercase__							,							lowercase__									=    invert_modulo(_snake_case  ,_snake_case							), invert_modulo(_snake_case  ,_snake_case							)
    lowercase__									=    na * na
    lowercase__									=    ra * x * na + ra * y * na
    return (n % m + m) % m


if __name__ == "__main__":
 from doctest import testmod

 testmod(name="chinese_remainder_theorem", verbose=True)
 testmod(name="chinese_remainder_theorem2", verbose=True)
 testmod(name="invert_modulo", verbose=True)
 testmod(name="extended_euclid", verbose=True)




