Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Prime String - ตรวจสอบสตริงว่าผลรวม ASCII เป็นจำนวนเฉพาะใน C++


ภาพรวมปัญหา

ได้รับสตริง ต้องพิมพ์ YES/NO ตามว่าผลรวมค่า ASCII ของตัวอักษรทั้งหมดเป็นจำนวนเฉพาะหรือไม่

ตัวอย่าง

Input: "Hello"
Output: No

วิธีแก้ปัญหา

  1. คำนวณผลรวมค่า ASCII ของทุกตัวอักษร
  2. ตรวจสอบว่าผลรวมเป็นจำนวนเฉพาะหรือไม่

ตัวอย่างโค้ด 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