求质数因子

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

 
数据范围: 1 \le n \le 2 \times 10^{9} + 14 \1n2×109+14 

输入描述:

输入一个整数

输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

注:质数(又称素数)指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。

从2开始枚举因子即可,使用sqrt函数开根号缩小一下枚举范围。

代码如下:

复制代码
#include<iostream>
#include <math.h>
using namespace std;

int main(){
    int n;
    while(cin>>n){
        for(int i=2;i<=sqrt(n);i++){
            while(n % i == 0){
                cout<< i <<' ';
                n/=i;
            }
        }
        if(n>=2)
            cout<< n <<endl;
    }

}
复制代码

 

posted @   An2i  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示