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