求 10000 以内的互满数,但是输出的结果是重复 5 对,求解?
#include<stdio.h>void hms(int i)
{
int g,h=0,k=0; /*定义三个局部变量*/
for(g=1;g<i;g++) /*用for训环计算i约数和*/
if(i%g==0)
h=h+g;
for(g=1;g<h;g++) /*计算h的约数和*/
if(h%g==0)
k=k+g;
if(k==i&&i!=h) /*判断是否为互满数*/
printf("(%d,%d)\n",i,h); /*输出两个数*/
}
void main ()
{
int a; /*定义一个变量*/
for(a=1;a<10000;a++) /*判断a的范围*/
{
hms(a); /*调用函数*/
}
}