Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาตัวประกอบเฉพาะมากที่สุดของจำนวนด้วย C++

พิจารณาว่าเรามีสมาชิก x เราต้องหาตัวประกอบเฉพาะมากที่สุด (Largest Prime Factor) ของ x ถ้าค่าของ x คือ 6 ตัวประกอบเฉพาะมากที่สุดคือ 3 เพื่อแก้ปัญหานี้ เราจะแยกตัวประกอบตัวเลขโดยการหารด้วยตัวหารของจำนวน และติดตามตัวประกอบเฉพาะสูงสุด

ตัวอย่างโค้ด

#include <iostream>
#include <cmath>
using namespace std;

long long getMaxPrimefactor(long long n) {
    long long maxPF = -1;
    while (n % 2 == 0) {
        maxPF = 2;
        n /= 2;
    }
    for (int i = 3; i <= sqrt(n); i += 2) {
        while (n % i == 0) {
            maxPF = i;
            n = n / i;
        }
    }
    if (n > 2)
        maxPF = n;
    return maxPF;
}

int main() {
    long long n = 162378;
    cout << "Max Prime factor of " << n << " is " << getMaxPrimefactor(n);
}

ผลลัพธ์

Max Prime factor of 162378 is 97