Given a String str , the task is to check if the sum of ASCII value of all characters is a Prime Number or not.
Examples :
Input : geeksforgeeks
Output : YesInput : GeeksForGeeks
Output : No
Algorithm
- Calculate the string length
- Calculate sum of ASCII value of all characters
- Now we can check till n1/2 because a larger factor of n must be a multiple of smaller factor. (Please see Check If the Number is Prime or Not for details)
- If the Sum is Prime then print “Yes” otherwise “No”
Now the implementation of above approach given below:
// C++ program to find if string is a
// Prime or not.
#include <bits/stdc++.h>
using namespace std;
// Function that checks if sum
// is prime or not
bool isPrimeString(string str)
{
int len = str.length(), n = 0;
for (int i = 0; i < len; i++)
n += (int)str[i];
// 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 || 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()
{
string str = "geekRam";
if (isPrimeString(str))
cout << "Yes" << endl;
else
cout << "No" << endl;
}
// Java program to find if
// string is a Prime or not.
import java.io.*;
class GFG {
// Function that checks if
// sum is prime or not
static boolean isPrimeString(String str)
{
int len = str.length(), n = 0;
for (int i = 0; i < len; i++)
n += (int)str.charAt(i);
// 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 || 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)
{
String str = "geekRam";
if (isPrimeString(str))
System.out.println("Yes");
else
System.out.println("No");
}
}
// This code is contributed by Ajit.
# Python Program to find if string is Prime or not
# Function that checks if sum is prime or not
def isPrimeString(str1):
len1 = len(str1)
n = 0
for i in range(len1):
n += ord(str1[i])
# 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
while(i * i <= n):
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
# Driver code
str1 = "geekRam"
if(isPrimeString(str1)):
print("Yes")
else:
print("No")
# This code is contributed by simranjenny84
// C# program to find if string is
// a Prime or not
using System;
class GFG
{
// Function that checks if sum is prime or not
public static bool isPrimeString(string str)
{
int len = str.Length, n = 0;
for (int i = 0; i < len; i++)
{
n += (int)str[i];
}
// 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 || 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)
{
string str = "geekRam";
if (isPrimeString(str))
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
}
}
// This code is contributed by Shrikant13
<?php
// PHP program to find if
// string is a Prime or not.
// Function that checks
// if sum is prime or not
function isPrimeString($str)
{
$len = strlen($str); $n = 0;
for ($i = 0; $i < $len; $i++)
$n += (int)$str[$i];
// 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 || $n % 3 == 0)
return false;
for ($i = 5; $i * $i <= $n; $i = $i + 6)
if ($n % $i == 0 ||
$n % ($i + 2) == 0)
return false;
return true;
}
// Driver code
$str = "geekRam";
if (isPrimeString($str))
echo "Yes" , "\n";
else
echo "No" , "\n";
// This code is contributed by aj_36
?>
<script>
// Javascript program to find if string
// is a Prime or not
// Function that checks if sum is prime or not
function isPrimeString(str)
{
let len = str.length, n = 0;
for(let i = 0; i < len; i++)
{
n += str[i].charCodeAt();
}
// 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 || n % 3 == 0)
{
return false;
}
for(let i = 5; i * i <= n; i = i + 6)
{
if (n % i == 0 || n % (i + 2) == 0)
{
return false;
}
}
return true;
}
// Driver code
let str = "geekRam";
if (isPrimeString(str))
{
document.write("Yes");
}
else
{
document.write("No");
}
// This code is contributed by decode2207
</script>
Output
No
Time Complexity: O(n)
Auxiliary Space: O(1), As constant extra space is used.