求一个用MATLAB编写求一个“完全数”的程序。。。

2024-11-08 07:37:11
推荐回答(2个)
回答1:

先编一个求因子的程序,然后判断因子之和等于因子之积,
例如6的因子1+2+3=1*2*3,是一个完全数 。

m = input('请输入m的值:')%所求 完全数范围 下限
n= input('请输入n的值:')%所求 完全数范围 上限
for s = m:n
y = 0;
for i = 1:s/2
if mod(s,i) == 0
y = y + i;
end
end
if y == s
s
end
end
计算,1~1000 内有三个完全数:6,28,496:
6=1+2+3;28=1+2+4+7+14;496=1+2+4+8+16+31+62+124+248 。

回答2:

clc
clear all
n = input('请输入n的值');%所求 完全数范围 下限
m = input('请输入m的值');%所求 完全数范围 上限
for s = n:m
y = 0;
for i = 1:s/2
if mod(s,i) == 0
y = y + i;
end
end
if y == s
s
end
end