给定一个整数“ n”,任务是检查奇数位置(从右到左)的数字总和是否为质数。
如果是素数,则打印“是”或“否”。
例子:
Input: n = 123
Output: NO
As, 1 + 3 = 4 is not prime.
Input: n = 42
Output: YES
Since, 2 is a prime.
方法:首先,找到位于奇数位置的数字总和,即1、3、5…(从右开始)。
如果总和为素数,则打印“是”,否则打印“否”。
下面是上述方法的实现:
C++
// C++ program to do Primality test
// for the sum of digits at
// odd places of a number
#include
using namespace std;
// Function that return sum
// of the digits at odd places
int sum_odd(int n)
{
int sum = 0, pos = 1;
while (n) {
if (pos % 2 == 1)
sum += n % 10;
n = n / 10;
pos++;
}
return sum;
}
// Function that returns true
// if the number is prime
// else false
bool check_prime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This condition is checked so that
// we can skip middle five
// numbers in the below loop
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;
}
// Driver code
int main()
{
int n = 223;
// Get the sum of the
// digits at odd places
int sum = sum_odd(n);
if (check_prime(sum))
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}
Java
// Java program to do Primality test
// for the sum of digits at
// odd places of a number
import java.io.*;
class GFG {
// Function that return sum
// of the digits at odd places
static int sum_odd(int n)
{
int sum = 0, pos = 1;
while (n>0) {
if (pos % 2 == 1)
sum += n % 10;
n = n / 10;
pos++;
}
return sum;
}
// Function that returns true
// if the number is prime
// else false
static boolean check_prime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This condition is checked so that
// we can skip middle five
// numbers in the below loop
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;
}
// Driver code
public static void main (String[] args) {
int n = 223;
// Get the sum of the
// digits at odd places
int sum = sum_odd(n);
if (check_prime(sum))
System.out.println ("YES" );
else
System.out.println("NO");
}
}
Python3
# Python3 program to do Primality test
# for the sum of digits at
# odd places of a number
# Function that return sum
# of the digits at odd places
def sum_odd(n):
sums = 0
pos = 1
while (n!=0):
if (pos % 2 == 1):
sums += n % 10
n = n // 10
pos+=1
return sums
# Function to check if a
# number is prime
def check_prime(n):
# Corner cases
if (n <= 1):
return False
if (n <= 3):
return True
# This is checked so that we can skip
# middle five numbers in below loop
if (n % 2 == 0 or n % 3 == 0):
return False
for i in range(5,n,6):
if (n % i == 0 or n % (i + 2) == 0):
return False
return True
#driver code
n = 223
# Get the sum of the
# digits at odd places
sums = sum_odd(n)
if (check_prime(sums)):
print("YES")
else:
print("NO")
#this code is improved by sahilshelangia
C#
// C# program to do Primality test
// for the sum of digits at
// odd places of a number
using System;
public class GFG{
// Function that return sum
// of the digits at odd places
static int sum_odd(int n)
{
int sum = 0, pos = 1;
while (n>0) {
if (pos % 2 == 1)
sum += n % 10;
n = n / 10;
pos++;
}
return sum;
}
// Function that returns true
// if the number is prime
// else false
static bool check_prime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This condition is checked so that
// we can skip middle five
// numbers in the below loop
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;
}
// Driver code
static public void Main (){
int n = 223;
// Get the sum of the
// digits at odd places
int sum = sum_odd(n);
if (check_prime(sum))
Console.WriteLine("YES" );
else
Console.WriteLine("NO");
}
}
PHP
输出:
YES