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;
}
相关推荐
foxsen_xia8 分钟前
go(基础06)——结构体取代类
开发语言·算法·golang
foxsen_xia10 分钟前
go(基础08)——多态
算法·golang
leoufung14 分钟前
用三色 DFS 拿下 Course Schedule(LeetCode 207)
算法·leetcode·深度优先
巨人张19 分钟前
C++火柴人跑酷
开发语言·c++
im_AMBER1 小时前
算法笔记 18 二分查找
数据结构·笔记·学习·算法
C雨后彩虹2 小时前
机器人活动区域
java·数据结构·算法·华为·面试
MarkHD2 小时前
车辆TBOX科普 第53次 三位一体智能车辆监控:电子围栏算法、驾驶行为分析与故障诊断逻辑深度解析
算法
Gomiko2 小时前
C/C++基础(四):运算符
c语言·c++
苏小瀚2 小时前
[算法]---路径问题
数据结构·算法·leetcode
freedom_1024_2 小时前
【c++】使用友元函数重载运算符
开发语言·c++