如何编写计算给定数字中所有质数位乘积的方法
质数位乘积方法实现
你上传的半完成代码截图:
核心实现逻辑
- 首先明确0-9的个位数里只有
2、3、5、7四个质数,直接预存这个集合做判断即可,不需要额外写复杂的质数判断逻辑,运行效率更高 - 初始化乘积变量为
1,注意不能初始为0,否则所有乘法运算的结果都会是0 - 逐位取出输入数字的每一位做判断,如果属于质数位就乘到乘积变量里
- 遍历完成后直接返回乘积变量即可
可运行代码示例(Python)
写法1:数值运算逐位取数
def get_prime_digit_product(num): prime_digits = {2, 3, 5, 7} product = 1 # 兼容负数输入 num = abs(num) while num > 0: current_digit = num % 10 if current_digit in prime_digits: product *= current_digit num = num // 10 return product
写法2:转字符串逐位遍历
def get_prime_digit_product(num): prime_digits = {'2', '3', '5', '7'} product = 1 # 转字符串自动处理数值转字符,兼容负数 for digit_char in str(abs(num)): if digit_char in prime_digits: product *= int(digit_char) return product
效果验证
传入示例值124563调用方法:print(get_prime_digit_product(124563))
输出结果为30,完全符合需求。
特殊场景说明
如果输入的数字中没有任何质数位,上述代码会返回1,如果你需要这种场景返回0,可以在返回前加判断:如果product还是初始值1就返回0,可根据实际需求调整。
内容的提问来源于stack exchange,提问作者Amitco666
相关产品推荐
相关产品推荐

