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

Tổng đệ quy các chữ số của một số là số nguyên tố hoặc không trong C ++

Cho một số biến số nguyên làm đầu vào. Mục đích là để tính tổng các chữ số của số đầu vào và kiểm tra xem tổng đó có phải là số nguyên tố hay không. Làm điều này cho đến khi số thu được có tổng các chữ số trở thành số có một chữ số. Kiểm tra xem số đó có phải là số nguyên tố hay không. Nếu số đầu vào là 123 thì tổng các chữ số sẽ là 1 + 2 + 3 =6 là số không nguyên tố và 6 cũng là số có một chữ số.

Hãy để chúng tôi xem các kịch bản đầu ra đầu vào khác nhau cho việc này

Đầu vào - number =12341

Đầu ra - Tổng đệ quy các chữ số của một số là PRIME

Giải thích -

1 + 2 + 3 + 4 + 1 =11

1 + 1 =2

2 là một số nguyên tố.

Đầu vào - number =1664

Đầu ra - Tổng đệ quy của các chữ số của một số KHÔNG PHẢI LÀ TƯỚNG

Giải thích -

1 + 6 + 6 + 4 =17

1 + 7 =8

8 là một số không phải nguyên tố.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Khai báo một biến số nguyên là một số.

  • Truyền dữ liệu vào hàm dưới dạng Recursently_Prime (số)

  • Bên trong hàm dưới dạng Recursently_Prime (số)

    • Đặt số cho lệnh gọi hàm dưới dạng sum (số).

    • Kiểm tra IF số là 3 Hoặc số là 3 HOẶC số là 5 HOẶC số là 7 rồi in PRIME.

    • ELSE, in KHÔNG PHẢI LÀ TƯỚNG.

  • Bên trong hàm sum (số int)

    • Kiểm tra số IF là 0 rồi trả về 0.

    • ELSE, IF số% 9 là 0) thì trả về 9.

    • ELSE, số% 9.

  • In kết quả.

Ví dụ

#include<iostream>
using namespace std;
int sum(int number){
   if(number == 0){
      return 0;
   }
   else{
      if(number % 9 == 0){
         return 9;
      }
      else{
         return number % 9;
      }
   }
}
void Recursively_Prime(int number){
   number = sum(number);
   cout<<"Recursive sum of digits of a number is ";
   if(number == 2 || number == 3 || number == 5 || number == 7){
      cout << "PRIME";
   }
   else{
      cout << "NOT PRIME";
   }
}
int main(){
   int number = 5555;
   Recursively_Prime(number);
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau

Recursive sum of digits of a number is PRIME