Trong bài toán này, chúng ta được cho một chuỗi. Nhiệm vụ là in YES / NO dựa trên việc tổng giá trị ASCII của các ký tự trong chuỗi có phải là số nguyên tố hay không.
Giá trị ASCII là mã hóa ký tự.
Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Hãy xem ví dụ sau để hiểu rõ vấn đề:
Input: string = “Hello” Output: No
Để giải quyết, ta tính tổng giá trị ASCII của tất cả ký tự trong chuỗi. Lưu tổng vào biến và kiểm tra xem tổng đó có phải số nguyên tố hay không.
Mã minh họa triển khai giải pháp:
Ví dụ
#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<<"Chuỗi '"<<str<<" ' là "; if (CheckPrimeString(str)) cout<<"một chuỗi nguyên tố \n"; else cout<<"không phải chuỗi nguyên tố\n"; }Kết quả
Chuỗi 'Hello! ' không phải chuỗi nguyên tố