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整除,因此它不是一个可重构的数字
下面程序中使用的方法如下
输入一个整数类型的变量,比方说,数字。
将数据传递给check_Refactorable(intnumber)bool类型的函数。
函数内部check_Refactorable(intnumber)
将整数类型变量声明为计数为0。
从i到1开始循环FOR,直到i小于sqrt(number)。在循环内,检查IFnumber%i=0然后检查IFnumber/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