Python 如果一个四位回文数abba/bb等于一个整数,那么有多少个abba?

Python 如果一个四位回文数abba/bb等于一个整数,那么有多少个abba?,python,palindrome,Python,Palindrome,Mursalin获取一个四位数的回文数字'n',并将其从中间两位数删除,得到一个两位数的数字'm'。如果n/m是一个整数,那么n有多少种可能的选择?。下面的代码返回零,但有什么问题吗? array = [] array2 = [] for i in range(1000,10000): if str(i) == str(i)[::-1]: array.append(str(i)) print(array) for nums in array: num = nums

Mursalin获取一个四位数的回文数字'n',并将其从中间两位数删除,得到一个两位数的数字'm'。如果n/m是一个整数,那么n有多少种可能的选择?。下面的代码返回零,但有什么问题吗?

array = []
array2 = []
for i in range(1000,10000):
    if str(i) == str(i)[::-1]:
        array.append(str(i))
print(array)
for nums in array:
    num = nums[1:3]
    num1 = int(num)
    num2 = int(nums)
    if num1 == 00:
        continue
    num3 = num2/num1
    if str(num3).isdigit():
        array2.append(nums)
print(array2)
print(len(array2))

您的除法
num3=num2/num1
没有像返回浮点一样工作。您应该检查
n/m
是否为整数,即欧几里得除法的其余部分是否等于零。试试这个:

array = []
array2 = []
for i in range(1000,10000):
    if str(i) == str(i)[::-1]:
        array.append(str(i))
print(array)
for pal in array:
    middle = int(pal[1:3])
    palindrome = int(pal)
    if middle == 00:
        continue
    
    # Check if division's rest is 0, so division's value is integer
    if palindrome % middle == 0:
    array2.append(pal)
print(array2)
print(len(array2))

研究num3num3的运算NUM3将始终返回浮点,我想知道如何处理这个num2//num1是整数除法,但num2%num1==0是更好的检查方法问题是删除中间的两位数字以获得两位数字
m
,这意味着
m
应该是原始4位数字的剩余部分,因此,您应该测试abba/aa是否为整数,而不是测试abba/bb。