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

更新於: 2020 年 2 月 3 日

349 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告