给定数字N ,任务是检查天气相邻数字的绝对差之和为素数。
例子:
Input: N = 142
Output: Prime
Sum = |1-4| + |4-2| = 5 i.e. prime.
Input: N = 347
Output: Not prime
方法:找到相邻数字的绝对差之和,然后检查该和是否为质数。
下面是上述方法的实现:
C++
// C++ implementation of the above approach
#include
using namespace std;
// Function to check for a prime number
bool Prime(int n){
if( n == 1){
return false;
}
for (int i=2;i*i<=n;i++){
if (n % i == 0)
return false;
}
return true;
}
// Function to find the sum of array
bool checkSumPrime(string st){
int summ = 0;
for (int i=1;i
Java
// Java implementation of the above approach
import java.util.*;
class GFG
{
// Function to check for a prime number
static boolean Prime(int n)
{
if (n == 1)
return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0)
return false;
return true;
}
// Function to find the sum of array
static boolean checkSumPrime(String str)
{
int summ = 0;
for (int i = 1; i < str.length(); i++)
summ += Math.abs(str.charAt(i - 1) -
str.charAt(i));
if (Prime(summ))
return true;
else
return false;
}
// Driver Code
public static void main(String[] args)
{
int num = 142;
String str = "142";
if (checkSumPrime(str))
System.out.println("Prime");
else
System.out.println("Not Prime");
}
}
// This code is contributed by
// sanjeev2552
Python3
# Python3 implementation of the above approach
import math as mt
# Function to check for a prime number
def Prime(n):
if n == 1:
return False
for i in range(2, mt.ceil(mt.sqrt(n + 1))):
if n % i == 0:
return False
return True
# Function to find the sum of array
def checkSumPrime(string):
summ = 0
for i in range(1, len(string)):
summ += abs(int(string[i - 1]) -
int(string[i]))
if Prime(summ):
return True
else:
return False
# Driver code
num = 142
string = str(num)
s = [i for i in string]
if checkSumPrime(s):
print("Prime")
else:
print("Not Prime\n")
# This code is contributed by Mohit Kumar
C#
// C# implementation of the above approach
using System;
class GFG
{
// Function to check for a prime number
static bool Prime(int n)
{
if (n == 1)
return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0)
return false;
return true;
}
// Function to find the sum of array
static bool checkSumPrime(String str)
{
int summ = 0;
for (int i = 1; i < str.Length; i++)
summ += Math.Abs(str[i - 1] -
str[i]);
if (Prime(summ))
return true;
else
return false;
}
// Driver Code
public static void Main(String[] args)
{
String str = "142";
if (checkSumPrime(str))
Console.WriteLine("Prime");
else
Console.WriteLine("Not Prime");
}
}
// This code is contributed by Rajput-Ji
Javascript
输出:
Prime
时间复杂度: O(sum 1/2 ),其中总和是数字的位数之和
辅助空间: O(1)