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

Số có thể khôi phục lại trong C ++

Chúng ta được cung cấp một giá trị kiểu số nguyên, giả sử là số. Nhiệm vụ là kiểm tra xem số đã cho có phải là Tái cấu trúc hay không. Nếu có, hãy in rằng số đó là một số có thể cấu trúc lại, nếu không, không thể in.

Số có thể tái cấu trúc là gì?

Một số có thể cấu trúc lại khi nó chia hết cho tổng số các thừa số có sẵn của nó. Ví dụ:số 9 có thể tái cấu trúc vì nó có tổng số thừa số, tức là 3 (1, 3, 9) và 9 chia hết cho 3 do đó nó là một số có thể tái cấu trúc.

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 - số int =9

Đầu ra - Đây là số có thể tái cấu trúc

Giải thích - Một số có thể tái cấu trúc khi nó chia hết cho tổng số các thừa số có sẵn của nó. Chúng ta được cung cấp một số 9, số này có thể tái cấu trúc vì nó có tổng số thừa số, tức là 3 (1, 3, 9) và 9 chia hết cho 3 do đó nó là một số có thể tái cấu trúc.

Đầu vào - int number =10

Đầu ra - Đây không phải là số có thể tái cấu trúc

Giải thích - Một số có thể tái cấu trúc khi nó chia hết cho tổng số các thừa số có sẵn của nó. Chúng ta được cho một số 10, số này không thể cấu trúc lại vì nó có tổng số thừa số, tức là 4 (1, 2, 5, 10) và 10 không chia hết cho 4 do đó nó không phải là một số có thể cấu trúc lại

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

  • Nhập một biến kiểu số nguyên, giả sử là số.

  • Chuyển dữ liệu đến hàm check_Refactworthy (số int) của kiểu bool.

  • Bên trong hàm check_Refactworthy (int number)

    • Khai báo một biến kiểu số nguyên là đếm đến 0.

    • Bắt đầu vòng lặp FOR từ i đến 1 cho đến khi tôi nhỏ hơn sqrt (số). Bên trong vòng lặp, kiểm tra IF số% i =0, sau đó kiểm tra IF số / i =i, sau đó tăng số lượng trước lên 1.

    • ELSE, đặt số đếm là đếm + 2.

    • Số trả lại% count ==0

  • In kết quả.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
bool check_Refactorable(int number){
   int count = 0;
   for (int i = 1; i <= sqrt(number); ++i){
      if(number % i==0){
         if(number / i == i){
            ++count;
         }
         else{
            count += 2;
         }
      }
   }
   return number % count == 0;
}
int main(){
   int number = 9;
   if(check_Refactorable(number) == 1){
      cout<<"It is a Refactorable number";
   }
   else{
      cout<<"It isn't a Refactorable number";
   }
   return 0;
}

Đầu ra

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

It is a Refactorable number