判断一个数是否为完全数

img


完全数是指它所有真因子(除了自身以外的正因子)的和恰好等于自身。输入一个正整数n,判断该正整数n是否为完全数,如果是则输出“Yes”,否则输出“No”。
代码哪里出错了?

这里的代码有几个问题:

在循环中,条件应该是i<=n/2,因为超过n/2的整数不可能是它的因子。
在while循环中,没有对i进行自增操作。
判断因子的条件应该是n%%i==0,不是(n-1)%%i==0。
最后输出结果应该使用print或者直接使用cat输出结果。
修改后的代码如下:

n <- 6 
sum <- 0 
for(i in 1:(n/2)) { 
while(i<=n/2)
{ 
if(n%%i==0){
 sum <- sum + i } 
i <- i+1 } 
} 
if(sum==n) print('Yes') else print('No')