ภาพรวมปัญหา
ได้รับสตริง ต้องพิมพ์ YES/NO ตามว่าผลรวมค่า ASCII ของตัวอักษรทั้งหมดเป็นจำนวนเฉพาะหรือไม่
ตัวอย่าง
Input: "Hello" Output: No
วิธีแก้ปัญหา
- คำนวณผลรวมค่า ASCII ของทุกตัวอักษร
- ตรวจสอบว่าผลรวมเป็นจำนวนเฉพาะหรือไม่
ตัวอย่างโค้ด C++
#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