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