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