HUEL OJ-73 分解质因子

题目描述

将一个正整数分解质因数,例如,输入90,输出2 3 3 5。


输入描述

输入一个正整数n(2<=n<=2000)。


输出描述

从小到大输出n的所有质因子,每两个数之间空一格。


输入样例

20

输出样例

#include <iostream>

int main() {
    int n;
    std::cout << "Enter a positive integer: ";
    std::cin >> n;

    std::cout << "Prime factorization of " << n << ": ";

    for (int i = 2; i <= n; ++i) {
        while (n % i == 0) {
            std::cout << i << " ";
            n /= i;
        }
    }

    std::cout << std::endl;

    return 0;
}

在这个程序中,n /= i 是用来检查 n 是否能够被当前的数 i 整除。具体地说,它的作用是:

  1. n 能够被 i 整除时,说明 in 的一个质因数。
  2. 然后,通过执行 n /= in 的值除以 i缩小问题规模
  3. 循环继续检查新的 n 是否能够被 i 整除,直到无法整除为止。

通过这个过程,我们能够找到 n 的所有质因数,并且在输出时按照从小到大的顺序输出。这是一种常见的分解质因数的方法。

让我们通过一个例子来说明:

假设 n 的初始值是 90,我们开始循环:

  • i 是 2 时,90 / 2 可以整除,于是输出 2,然后更新 n 为 45。
  • i 是 3 时,45 / 3 可以整除,于是输出 3,然后更新 n 为 15。
  • i 是 3 时,15 / 3 可以整除,于是输出 3,然后更新 n 为 5。
  • i 是 5 时,5 / 5 可以整除,于是输出 5,然后更新 n 为 1。
  • i 是 1 时,1 / 1 可以整除,但不输出 1,因为 1 不是质数。

最终的输出是 2 3 3 5。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值