C++ 中判斷一個數字的奇位上數字之和是否為素數
在這個題目中,我們得到一個數字 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.
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP