Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 리팩토링 가능한 숫자

<시간/>

정수 유형 값, 예를 들어 숫자가 제공됩니다. 주어진 번호가 리팩토링 가능한지 여부를 확인하는 작업입니다. 예인 경우 해당 숫자가 리팩토링 가능한 숫자임을 인쇄하십시오. 그렇지 않으면 인쇄가 불가능합니다.

리팩토링 가능한 숫자란 무엇입니까?

사용 가능한 총 인수 수로 나눌 수 있는 숫자는 리팩토링 가능합니다. 예를 들어 숫자 9는 총 인수 수가 3(1, 3, 9)이고 9는 3으로 나눌 수 있으므로 리팩토링 가능한 숫자이므로 리팩토링 가능합니다.

여기에 대한 다양한 입력 출력 시나리오를 살펴보겠습니다 -

입력 - 정수 =9

출력 - 리팩토링 가능한 숫자입니다.

설명 − 사용 가능한 총 인수 수로 나눌 수 있는 숫자는 리팩토링 가능합니다. 우리에게 주어진 숫자 9는 총 인수 수가 3(1, 3, 9)이고 9는 3으로 나눌 수 있으므로 리팩토링 가능한 숫자이므로 리팩토링할 수 있습니다.

입력 - 정수 =10

출력 − 리팩토링 가능한 숫자가 아닙니다.

설명 − 사용 가능한 총 인수 수로 나눌 수 있는 숫자는 리팩토링 가능합니다. 우리에게 주어진 숫자 10은 총 인수 수가 4(1, 2, 5, 10)이고 10은 4로 나눌 수 없으므로 리팩터링 가능한 숫자가 아니므로 리팩토링할 수 없습니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 정수형 변수, 예를 들어 숫자를 입력합니다.

  • bool 유형의 check_Refactorable(int number) 함수에 데이터를 전달합니다.

  • check_Refactorable(int number)

    함수 내부
    • 정수형 변수를 count로 0으로 선언합니다.

    • i가 sqrt(숫자)보다 작을 때까지 루프 FOR를 i에서 1로 시작합니다. 루프 내에서 IF number % i =0을 확인한 다음 IF number / i =i를 확인한 다음 카운트를 1로 사전 증가시킵니다.

    • 그렇지 않으면 카운트를 카운트 + 2로 설정합니다.

    • 반환 번호 % 개수 ==0

  • 결과를 인쇄하십시오.

예시

#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;
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.

It is a Refactorable number