当前位置:首页python > 正文

python实现反向数,回文数,回文素数,反素数,梅森素数,双素数。

作者:野牛程序员:2023-12-14 20:43:50python阅读 2686

反向数是指将一个数的各位数字颠倒过来得到的数。以下是Python中实现反向数的简单代码:

def reverse_number(num):
    return int(str(num)[::-1])
# 示例
original_number = 12345
reversed_number = reverse_number(original_number)
print(f"Original Number: {original_number}, Reversed Number: {reversed_number}")

回文数是指一个数字从左往右读和从右往左读是一样的。以下是Python中实现回文数的代码:

def is_palindrome(num):
    return str(num) == str(num)[::-1]
# 示例
palindrome_number = 121
print(f"Is {palindrome_number} a palindrome number? {is_palindrome(palindrome_number)}")

回文素数是指既是回文数又是素数的数字。以下是Python中实现回文素数的代码:

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

def is_palindrome_prime(num):
    return is_palindrome(num) and is_prime(num)

# 示例
palindrome_prime_number = 131
print(f"Is {palindrome_prime_number} a palindrome prime number? {is_palindrome_prime(palindrome_prime_number)}")

反素数是指一个正整数,其正除数数量大于任何小于它的正整数。以下是Python中实现反素数的代码:

def divisor_count(n):
    count = 0
    for i in range(1, n + 1):
        if n % i == 0:
            count += 1
    return count

def is_superprime(num):
    num_divisors = divisor_count(num)
    for i in range(1, num):
        if divisor_count(i) >= num_divisors:
            return False
    return True

# 示例
superprime_number = 12
print(f"Is {superprime_number} a superprime number? {is_superprime(superprime_number)}")

梅森素数是指形如2^n-1的素数,其中n也是素数。以下是Python中实现梅森素数的代码:

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

def is_mersenne_prime(p):
    if is_prime(p):
        mersenne_number = 2**p - 1
        return is_prime(mersenne_number)
    return False

# 示例
mersenne_prime_exponent = 3
print(f"Is 2^{mersenne_prime_exponent}-1 a Mersenne prime? {is_mersenne_prime(mersenne_prime_exponent)}")

双素数是指两个素数之差为2的素数对。以下是Python中实现双素数的代码:

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

def find_twin_primes(start, end):
    twin_primes = []
    for i in range(start, end - 1):
        if is_prime(i) and is_prime(i + 2):
            twin_primes.append((i, i + 2))
    return twin_primes

# 示例
start_range = 10
end_range = 50
twin_primes_result = find_twin_primes(start_range, end_range)
print(f"Twin primes between {start_range} and {end_range}: {twin_primes_result}")



野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击