题目

从标准输入读入一个非负整数 n,判断其是否为回文整数(即正反读完全一致的数字)。

输入格式:一行输入一个非负整数 n。

输出格式:若为回文数输出 yes,否则输出 no,末尾换行。

数据范围与约定:0 ≤ n ≤ 1018。

思路与算法

1. 算术逆序重构
复制原数 t = n,利用 rev = rev * 10 + t % 10; t //= 10 构造完全逆序的数值,比对 rev == n。

2. 字符串切片对比
也可以将数字转为字符串后通过切片 s == s[::-1] 极速判断。

完整程序

# 完数定义:真因子之和等于自身(排除自身)
for i in range(1, 1001):
    s = 0
    # 寻找所有真因子并累加
    for j in range(1, i):
        if i % j == 0:
            s += j
    if s == i:
        print(i)

运行示例

输入:

12321

输出:

yes