ในปัญหานี้ เราได้รับตัวเลข N หน้าที่ของเราคือตรวจสอบว่าผลรวมของหลักที่ตำแหน่งคี่ของตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่
การทดสอบเบื้องต้น คืออัลกอริธึมที่ใช้ตรวจสอบว่าจำนวนที่กำหนดเป็นจำนวนเฉพาะหรือไม่
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input: 3425 Output: No Explanation: sum digits at odd place = 5 + 4 = 9, which is not a prime number.
ในการแก้ปัญหานี้ วิธีง่ายๆ คือการบวกตัวเลขทั้งหมดที่อยู่ในตำแหน่งคี่ของตัวเลข จากนั้นตรวจสอบว่าผลรวมนี้เป็นจำนวนเฉพาะหรือไม่
โปรแกรมแสดงการใช้งานโซลูชันของเรา
ตัวอย่าง
#include <iostream>
using namespace std;
int oddSum(int n) {
int sum = 0, pos = 1;
while(n) {
if (pos %2 == 1)
sum += n%10;
n=n/10;
pos++;
}
return sum;
}
bool isPrimeNumber(int n){
if (n <= 1)
return false;
if (n <= 3)
return true;
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6)
if (n % i == 0 || n % (i + 2) == 0)
return false;
return true;
}
int main() {
int n = 1734;
if (isPrimeNumber(oddSum(n)))
cout<<"Sum of odd digit of the number "<<n<<" is prime Number.";
else
cout<<"Sum of odd digit of the number "<<n<<" is not prime Number.";
return 0;
} ผลลัพธ์
Sum of odd digit of the number 1734 is prime Number.