当前位置 : 主页 > 编程语言 > python >

基于visual Studio2013解决C语言竞赛题之0416完数

来源:互联网 收集:自由互联 发布时间:2022-06-18
题目 解决代码及点评 完数的解决方案依旧是遍历,然后写出判断完数的函数进行处理 /************************************************************************/ /* 16. 一个数如果恰好等于它的因子之和




题目

基于visual Studio2013解决C语言竞赛题之0416完数_工程文件


解决代码及点评

完数的解决方案依旧是遍历,然后写出判断完数的函数进行处理


/************************************************************************/
/*
16. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6 的因子为1、2、3,而6=1+2+3,因此6 是“完数”。编程序找出1000之内的所有完数,
并按下面格式输出其因子:
6 its factors are 1,2,3

*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// 判断一个数是否完数的函数
bool f416(int num)
{
int arr[100]={0};
int index=0;
int sum=0;
// 查找它的所有因子,再将因子累加
for (int i=1;i<num;i++)
{
if (num%i==0)
{
sum+=i;
arr[index++]=i;
}

}
// 如果因子累加的和是它自己本身,那么这个数是完数
if (sum==num)
{
printf(" %5d its factors are",num);
for (int i=0;i<index;i++)
{
printf("%5d",arr[i]);
}
return true;
}
else
{
return false;
}
}

void main()
{
for (int i=1;i<=1000;i++) // 遍历1000个数
{
if (f416(i)) // 判断是不是完数
{
printf("\n");
}
}

system("pause");
}

代码下载及其运行

代码下载链接

解压密码为c.itcast.cn


下载解压后用VS2013打开工程文件

点击 “本地Windows调试器” 执行

基于visual Studio2013解决C语言竞赛题之0416完数_工程文件_02


程序运行结果

基于visual Studio2013解决C语言竞赛题之0416完数_工程文件_03



网友评论