Computer >> Máy Tính >  >> Lập trình >> C ++

Chuỗi số nguyên tố trong C ++

Trong bài toán này, chúng ta được cung cấp một chuỗi. Nhiệm vụ của chúng tôi là in CÓ / KHÔNG dựa trên là tổng các 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 chính số đó và 1.

Hãy lấy một ví dụ để hiểu vấn đề,

Input: string = “Hello”
Output:No

Để giải quyết vấn đề này, chúng ta sẽ phải tìm tổng các giá trị ASCII của tất cả các ký tự của chuỗi. Và lưu trữ tổng trong một biến và sau đó kiểm tra xem tổng có phải là số nguyên tố hay không.

Mã để hiển thị việc triển khai giải pháp của chúng tôi

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<<"The string '"<<str<<" ' is ";
   if (CheckPrimeString(str))
      cout<<"a prime String \n";
   else
      cout<<"not a prime String\n";
}

Đầu ra

The string 'Hello! ' is not a prime String