以下是Python代码:

m = int(input("请输入正整数m:"))
n = int(input("请输入正整数n:"))

# 确定范围较小的那个数,便于优化时间复杂度
if m > n:
    m, n = n, m

sum_common_divisor = 0
for i in range(1, m+1):
    if m % i == 0 and n % i == 0:
        sum_common_divisor += i

print("公共因子之和为:", sum_common_divisor)

首先,输入两个正整数m和n,然后我们找到这两个数字中较小的一个,并使用for循环从1到该数字遍历每个数。如果该数既是m的因子又是n的因子,则将其添加到计算总和的变量中。最后输出公共因子之和。

更详细的回复

这个程序的目标是计算两个正整数m和n的所有公共因子之和。为了实现这个功能,我们可以使用循环来遍历1到较小的数(即min(m,n))的所有可能的因子,并检查它们是否同时是m和n的因子。如果是,则将它们添加到一个累加器中,并返回最终的总和。

以下是一个使用Python编写的示例代码:

def sum_common_factors(m, n):
    total = 0
    for i in range(1, min(m, n) + 1):
        if m % i == 0 and n % i == 0:
            total += i
    return total

在这个函数中,我们首先初始化一个total变量来存储公共因子的总和。然后,在循环中,我们遍历1到min(m,n)的范围,并检查每个数字是否是m和n的因子。如果是,我们将它们添加到total中。最后,我们返回total作为结果。

例如,如果我们调用sum_common_factors(12, 30),则该函数将返回18,因为12和30的公共因子是1、2和6,这些数字的总和是18。