程序设计实验 完数和水仙花数

本文通过编程展示了如何寻找1000以内的完数(一个数等于其因子之和)和水仙花数(三位数的各位数字立方和等于其本身)。示例代码分别找到了6、28、496这三个完数以及153、370、371、407这四个水仙花数。这些算法对于理解基本的编程概念和数学原理具有实践意义。
摘要由CSDN通过智能技术生成

(一)

编程求1000之内的所有“完数”。所谓“完数”,是指一个数恰好等于它的因子之和。例如,6是完数,因为6=1+2+3.

int main() {

    int i;
    int a, sum;
    for (i = 1; i <= 1000; i++)
    {
        sum = 0;//清零
        for (a = 1; a < i; a++)
        {
            if (i % a == 0)//找出因子并求和
                sum += a;
        }
        if (sum == i)
            cout << i<<"为完数" << endl;
    }

    return 0;
}
    

这样运行出来就是

6为完数
28为完数
496为完数

(二)

编程求“水仙花数”,所谓“水仙花数”,是指一个三位数,其各位数字立方和等于该数本身,例如,153是水仙花数。

int main()
{   //判断个位  ^3+十位^3+百位^3等于本身

	//1.打印所有三位数
	int num = 100;
	do
	{//2.找到水仙花数并打印出来
		int a = 0, b = 0, c = 0;//获取个位,十位,百位
		a = num % 10;           //获取个位  三位数取模于10 -> %10
		b = num / 10 % 10;      //获取十位  三位数整除10   -> /10,再将得到的数取模于10  -> %10;
		c = num / 100;	        //获取百位  直接整除100    -> /100,
		if (a* a* a + b * b * b + c * c * c == num)
		{cout << num << endl;
		}num++;
	} while (num < 1000);
	system("pause");
	return 0;
}

这样运行出来就是

153
370
371
407
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值