#include<stdio.h> int main() { int i, j; int sum;//求所有因子的和 int n;//输入一个数的范围 比如:1000 int count,count1;//count 用于控制某个数的因子的个数 count1用于计数 scanf("%d",&n); for (i = 2; i <= n; i++)//首先排除输出没有1 可以直接略去
{ count1 = 0; count = 0; sum = 0;//这三个赋值为0 的是每次循环数时重新赋值 for (j = 1; j < i; j++) { if (i % j == 0) { sum += j;//计算因子的和 count++;//计算因子的个数 } } if (sum == i)//当因子的和等于它对应的数时 才开始下面 { printf("%d(",sum); for (j = 1; j < sum; j++) { if (sum % j == 0) { printf("%d",j); count1++; if (count1 == count)//为什么要计个数呢?主要是对最后一个格式的输出 不然多了 ,