题解 | #质数因子#

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

#include <iostream>

using namespace std;

void divide(int x)
{
    for (int i = 2; i <= x / i; i ++ )
    {
        if (x % i == 0)
        {
            /* 条件满足时,则可得[2, i - 1]都不是x的因子,但是i是x的一个因子,故x不是质数
            * 但是由于循环条件是 x / i,则可知[2, i - 1]同样也不是i的因子,即i是质数
            * 即当if条件满足时,i是x的质因子 */
            int s = 0;
            while (x % i == 0) x /= i, s ++ ;
            while (s -- ) printf("%d ", i);
        }
    }

    if (x > 1) printf("%d", x);
}

int main()
{
    int x;
    cin >> x;

    divide(x);

    return 0;
}

全部评论

相关推荐

剑桥断刀:找啥工作,牛客找个比如大厂软开或者随便啥的高薪牛马,大把没碰过妹子的技术仔,狠狠拿捏爆金币
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务