이 문제에서는 숫자 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.