水仙花数+质因数c++

(附加题)水仙花数是一个三位数,其个位数的立方+十位数的立方+百位数的立方=这个数本身,例如153是一个水仙花数。试找出100-999间的所有水仙花数,并对每个水仙花数找出其所有质因数,例如153的质因数有3,3,17

————题源来自老师布置的课后附加题

首先对题目进行拆解:

  1. 先找出水仙花数

取出它的每一位数字并存储(%)(/)

的基础操作

  1. 找出质因数

质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。

则只需要让水仙花数挨个除以,2—它本身-1的数即可,若能%==0,则该数为水仙花数的质因数。

有了如上思路我们开始写代码。

有了如上思路我们开始写代码

#include<iostream>


using namespace std;
int main() {
    int num, a, b, c;
    int m;
    for (num = 100; num < 1000; num++) {
       a = num % 10;
       b = num / 10 % 10; 

       c = num / 100;       

if (num == (a * a * a + b * b * b + c * c * c)) {
            cout << num << " ";
            m = num;
            for (int i = 2; i <= num; i++){
                while (m % i == 0 ){
                cout << i << " ";
               m = m / i;  }
            }
         }    cout<<endl;                   
    }
    return 0;
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值