完全数是指它所有真因子(除了自身以外的正因子)的和恰好等于自身。输入一个正整数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')