#include<stdio.h>
int main() {
int m;
int t;
scanf_s("%d" ,&m);
if (panduan(m) == 0)
printf("yes");
else
{
t = 0.5 * panduan(m) + 1;
if (m == t)
printf("yes");
else
printf("no");
}
return 0;
}
int panduan(int m) {
if (m == 1||m==0)
return m;
int i = 2;
int sum = 0;
int k = m;
for (i = 2; i < m; i++)
{
if (m % i == 0 && m != i)
{
m /= i;
sum += i + m;
m = k;
}
}
return sum;
}
这个程序为什么不能满足这个问题:所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身?