# -*- coding: utf8 -*-
import math
class digital_manager(object):
def is_palindrome(self, n):
"""
判断一个数是否是回环文,判断依据就是正序和倒序一样,str(n)[::-1]取这个数的倒序
:param n: 数字
:return: True/False
"""
return str(n) == str(n)[::-1]
def palindrome_list(self, n):
"""
小于给定数中的回环数
:param n: 最大数
:return: 回环数list
"""
return list(filter(self.is_palindrome, range(n)))
def is_quality(self, n):
"""
判断一个数是否为质数
:param n: 数字
:return: True/False
"""
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if not n % i:
return False
return True
def quality_list(self, n):
"""
列出一个数的所有因子
:param n: 数字
:return: 因子列表
"""
quality = list()
if n <= 2:
return quality
for i in range(1, int(math.sqrt(n) + 1)):
if not n%i:
quality.extend([i, n/i])
return sorted(set(quality))
if __name__ == "__main__":
digital = digital_manager()
print digital.palindrome_list(100)
print digital.is_quality(14)
print digital.quality_list(50)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99]
False
[1, 2, 5, 10, 25, 50]