Trong bài toán này, chúng ta được cho một số N. Nhiệm vụ là kiểm tra xem tổng các chữ số ở vị trí lẻ của số đó có cho ra một số nguyên tố hay không.
Kiểm tra nguyên tố là thuật toán dùng để xác định xem một số cho trước có phải là số nguyên tố hay không.
Hãy xem ví dụ sau để hiểu rõ vấn đề:
Input: 3425 Output: No Giải thích: tổng các chữ số ở vị trí lẻ = 5 + 4 = 9, không phải là số nguyên tố.
Để giải quyết bài toán, một cách tiếp cận đơn giản là cộng tất cả các chữ số ở vị trí lẻ trong số, sau đó kiểm tra xem tổng này có phải là số nguyên tố hay không.
Ví dụ
#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<<"Tổng các chữ số lẻ của số "<<n<<" là số nguyên tố."; else cout<<"Tổng các chữ số lẻ của số "<<n<<" không phải là số nguyên tố."; return 0; }Kết quả
Tổng các chữ số lẻ của số 1734 là số nguyên tố.