ในปัญหานี้ เราได้รับสตริง งานของเราคือการพิมพ์ ใช่ / ไม่ใช่ ขึ้นอยู่กับเป็นผลรวมของค่า ASCII ของตัวอักษรในสตริงเป็นจำนวนเฉพาะหรือไม่
ค่า 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