C ++中的素数字符串

在这个问题上,我们得到一个字符串。我们的任务是根据字符串的字符的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

以上是 C ++中的素数字符串 的全部内容, 来源链接: utcz.com/z/322062.html

回到顶部