C语言:结合函数,输出400以内的亲密对数。
#include <stdio.h>
//输出400以内的亲密对数
//sumx(n)函数的作用是记录n的因子之和
int sumx(int n) {
int m = 0, sum;
sum = 0;
for (m = 1; m < n; m++)
{
if (n % m == 0)
{
sum = sum + m;
}
}
return sum;
}
int main() {
int m = 0, n = 0;
printf("400以内:");
//通过双for嵌套循环,实现全面筛选
for (int i = 1; i <= 400; i++) {
for (int j = 1; j <= 400; j++) {
if (i == j)continue;
//以下if判断条件为亲密对数的定义
if (sumx(i) == j&&i==sumx(j)) {
//if语句的作用,如果亲密对数输出过则continue,避免重复输出
//注意if判断语句之所以不是(j==n&&i==n),是为了避免出现,前面输出过的亲密对数颠倒位置后又输出一次
if (j == m && i == n)
{
continue;
}
printf("%4d 和 %4d 是亲密对数。\n", i, j);
//m,n记录亲密对数历史数据
m = i;
n = j;
}
}
}
}