输入一个正数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