在这个问题上,我们得到一个字符串。我们的任务是根据字符串的字符的ASCII值的总和是否为质数来打印YES / NO。
ASCII值是字符编码
质数是只能被数字本身和1整除的数字。
让我们举个例子来了解这个问题,
Input: string = “Hello” Output:No
为了解决这个问题,我们将必须找到字符串所有字符的ASCII值之和。并将和存储在变量中,然后检查和是否是质数。
该代码显示了我们解决方案的实施
#include <iostream> using namespace std; bool CheckPrimeString(string str) { int len = str.length(), sum = 0; for (int i = 0; i < len; i++) sum += (int)str[i]; if (sum<= 1) return false; if (sum <= 3) return true; if (sum % 2 == 0 || sum % 3 == 0) return false; for (int i = 5; i * i <= sum; i = i + 6) if (sum % i == 0 || sum % (i + 2) == 0) return false; return true; } int main() { string str = "Hello!"; cout<<"The string '"<<str<<" ' is "; if (CheckPrimeString(str)) cout<<"a prime String \n"; else cout<<"not a prime String\n"; }
输出结果
The string 'Hello! ' is not a prime String