ในปัญหานี้ เราได้รับตัวเลข 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.