Unique Prime Factors คือ ตัวประกอบที่เป็นเลขเฉพาะของตัวเลขนั้น โจทย์: หาผลคูณของ Unique Prime Factors ทั้งหมด เลขเฉพาะคือ มีตัวประกอบแค่ 1 และตัวมันเอง
ตัวอย่าง n = 1092: Prime factors = 2, 3, 7, 13 ผลคูณ = 546
วิธีง่าย: วนหาตัวประกอบทั้งหมด ตรวจสอบว่าเป็น Prime ไหม ถ้าเป็น คูณสะสม
Input: n = 10 Output: 10
คำอธิบาย
10 มี Prime factors 2 และ 5 ผลคูณ = 10
Loop i=2 ถึง n ถ้า i หาร n ลงตัว ตรวจสอบ i ว่าเป็น Prime ไหม ถ้าใช่ คูณสะสม
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
int n = 10;
long long int product = 1;
for (int i = 2; i <= n; i++) {
if (n % i == 0) {
int isPrime = 1;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) product = product * i;
}
}
cout << product;
return 0;
}