首页 > 编程 > C++ > 正文

c++第二次实验-7完数输出

2019-11-06 07:14:59
字体:
来源:转载
供稿:网友

一、问题及代码:

/* 文件名称:项目7.cpp * 作    者:严明远 * 完成日期:2017 年 3 月 5 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:无 * 问题描述: 	【项目7:输出完数】一个数如果恰好等于它的因子之和,这个数就称为“完数”。	例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。编程找出1000以内的所有完数。(答案:6  28  496)提示:首先从2到1000构造循环控制变量为i的外层循环。每次循环中,利用内嵌的循环逐个地求出i的因子,并累加起来(为提高效率,可能的因子从1到i/2),如果因子和等于i,则说明是完全数,输出。然后继续循环,考察i+1……* 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream>using namespace std;int main(){	int i,j,k,num,temp,n;	int a[10];//存放因子。	for(i=2;i<1000;i++)	{		num=0,n=0;//初始化。		for(j=1;j<i;j++)		{			temp=0;			if(i%j==0)			{				temp=1;				a[n]=j;				n++;			}			if(temp)				num+=j;//判断因子之和是否等于被除数。		}		if(num==i)		{			cout<<"完数:"<<num<<"=";			for(k=0;k<n-1;k++)			{				cout<<a[k]<<"+";			}			cout<<a[n-1]<<endl;		}	}	return 0;}

二、运行结果:

三、’心得体会:

应熟练运用循环嵌套,每层循环数据应该初始化。

四、知识点总结:

因子不包括本身(!因数)可通过循环嵌套,利用内层循环逐个求出i的因子,并累加起来。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选