
#include
#include //使用sqrt函数要包含此头文件
int main() {
int n, i, j, k, sum, temp;
int a[10];
scanf("%d",&n);
for(i = 1; i <= n; ++i) { //在1~范围内逐个检查
sum = 1; //初始化,1肯定是一个因子
for(j = 2; j <= sqrt(i); ++j) { //从2~根号i检查就够了,因为因子必定是成对出现的
if(i % j == 0) { //如果j是i的较小的一个因子
sum += j; //累加j
temp = i / j; //找出i的另一个因子
if(temp > j && temp < i) //如果j与temp不相重
sum += temp; //就加入另一个因子temp
}
}
if(sum == i) { //找到了一个完全数
k = 0; //准备记录此数的因子
a[k++] = 1; //i的第一个因子
for(j = 2; j <= i / 2; ++j) { //找出它除自身外的全部因子
if(i % j == 0) //如是因子
a[k++] = j; //就存入数组保存
}
printf("%d = ", i); //输出等式的左边
for(j = 0; j < k - 1; ++j) //输出前几个因子
printf("%d + ", a[j]);
printf("%d\n", a[k - 1]); //输出最后一个因子
}
}
}