정수 유형 값, 예를 들어 숫자가 제공됩니다. 주어진 번호가 리팩토링 가능한지 여부를 확인하는 작업입니다. 예인 경우 해당 숫자가 리팩토링 가능한 숫자임을 인쇄하십시오. 그렇지 않으면 인쇄가 불가능합니다.
리팩토링 가능한 숫자란 무엇입니까?
사용 가능한 총 인수 수로 나눌 수 있는 숫자는 리팩토링 가능합니다. 예를 들어 숫자 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