Euler

最大质因数

内存限制:128 MB时间限制:10.000 S

题目描述

13195的所有质因数为5、7、13和29。

那么,n的最大的质因数是多少?

输入

一个整数n(n<

输出

一行,一个整数表示n的最大质因数

样例输入

13195

样例输出

29

思路分析

从小到大,找出n的所有质因数。每找到一个质因数i,就记ans=i,并while循环n/i直至n不能整除i。

如果以上操作结束后,n>1,此时的n就是要求的最大质因数。

代码
cpp 复制代码
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll n,ans;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(ll i=2;i*i<=n;i++){
        while(n%i==0){
            ans=i;
            n/=i;
        }
    }
    if(n>1){
        ans=n;
    }
    cout<<ans;
    return 0;
}

(如果先处理因子2,再循环处理奇数因子,会快一点)

cpp 复制代码
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll n,ans;
int main() {
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    while(n%2==0){
        ans=2;
        n/=2;
    }
    for(ll i=3;i*i<=n;i+=2){
        while(n%i==0){
            ans=i;
            n/=i;
        }
    }
    if(n>1){
        ans=n;
    }
    cout<<ans;
    return 0;
}
相关推荐
小白菜又菜19 分钟前
Leetcode 3432. Count Partitions with Even Sum Difference
算法·leetcode
wuhen_n1 小时前
LeetCode -- 15. 三数之和(中等)
前端·javascript·算法·leetcode
sin_hielo2 小时前
leetcode 2483
数据结构·算法·leetcode
Xの哲學2 小时前
Linux多级时间轮:高精度定时器的艺术与科学
linux·服务器·网络·算法·边缘计算
大头流矢2 小时前
归并排序与计数排序详解
数据结构·算法·排序算法
阿闽ooo3 小时前
外观模式:从家庭电源控制看“简化接口“的设计智慧
c++·设计模式·外观模式
油泼辣子多加3 小时前
【信创】算法开发适配
人工智能·深度学习·算法·机器学习
Aaron15883 小时前
AD9084和Versal RF系列具体应用案例对比分析
嵌入式硬件·算法·fpga开发·硬件架构·硬件工程·信号处理·基带工程
laocooon5238578863 小时前
插入法排序 python
开发语言·python·算法
你的冰西瓜4 小时前
C++中的list容器详解
开发语言·c++·stl·list