python编程题因子数

输入一个正数n,计算出因子里面分别有几个4和7,输出因子中4和7的个位数

n = int(input("输入数字:"))
factor = [n]   # 包括n?
num = 1
while num <= n/2+1:
    if n % num == 0:
        factor.append(num)
    num = num + 1
print(factor)
m = [str(i) for i in factor]
count4 = 0
count7 = 0
for i in m:
    if '4' in i:
        count4 += 1
        print('以4结尾的因子的个位数:', int(i)%10)
    if '7' in i:
        count7 += 1
        print('以7结尾的因子的个位数:', int(i)%10)
print('因子里面分别有{0}个4和{1}个7'.format(count4,count7))

这里的因子包括了数字本身,如果不想包括可以将factor 初始化为[]

输入:140

输出:

[140, 1, 2, 4, 5, 7, 10, 14, 20, 28, 35, 70]
以4结尾的因子的个位数: 0
以4结尾的因子的个位数: 4
以7结尾的因子的个位数: 7
以4结尾的因子的个位数: 4
以7结尾的因子的个位数: 0
因子里面分别有3个4和2个7

 

int factor_count(int number, int factor)
{
int ret;
for (ret = 0; number != 0; ++ret)
{
if (number % factor != 0) break;
else number /= factor;
}
return ret;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632