一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如,6的因子是1,2,3,且6=1+2+3,因此6是完数。

编程找出500以内的所有完数,并按下面的格式输出其因子:

6是一个完数,它的因子是1,2,3

代码:

#include<stdio.h>
#define MAX 500
int main(void)
{
	int a[100];//用来储存x的因子
	int x=2;//咱从2开始来找‘完数’
	
	for(;x<=MAX;x++)
	{   
	    int sum=0;//将x的因子加起来
	    int k=0;//用来帮助啊a[]储存因子
	    
	    //将x因子加起来且分别按顺序存入a[]
		for(int i=1;i<x;i++)
		{
			
			if(x%i==0)//x%i==0说明i是x的因子
			{
				sum+=i;//将x的因子加起来
				a[k]=i;//存x的因子
				k++;//把a[]移到下一位
			}
					
		}
		
		//判断x是否是完数,如果是便打印出x并遍历a[]
		if(sum==x)
		{  		    		    
			printf("%d是一个完数,它的因子是",x);			
			for(int t=0;t<k;t++)
			{		
			//要注意一下输出的格式,所以下面弄个if和else
				if(t<k-1)  printf("%d,",a[t]);
				else if (t=k-1)  printf("%d。",a[t]);
				
			}
		     	printf("\n");			
		}
				
	}
		
	return 0;
}
	

运行结果:

在这里插入图片描述

今天上午上啦C语言课,这是课堂实验的一道题,当时俺‘哐当哐当’敲得老快了,但是感觉可读性不太高(哈哈,int随手拈来,命名随意,还没有注释!!太不讲‘码德了(〃´-ω・) ’),所以我下午就把它完善了一下,总算好看点啦!!
(附上上午滴反面教材)
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐