C++ 中的可分解数
给定一个整数类型的值,例如 number。任务是检查给定的数字是否可分解。如果是,则打印该数字是可分解数;否则,打印“不可能”。
什么是可分解数?
当一个数可以被其因数的总数整除时,它就是一个可分解数。例如,数字 9 是可分解的,因为它共有 3 个因数(1、3、9),而 9 可以被 3 整除,因此它是一个可分解数。
让我们看看这个的不同输入输出场景:
输入 - int number = 9
输出 - 它是一个可分解数
解释 - 当一个数可以被其因数的总数整除时,它就是一个可分解数。给定数字 9,它是一个可分解数,因为它共有 3 个因数(1、3、9),而 9 可以被 3 整除,因此它是一个可分解数。
输入 - int number = 10
输出 - 它不是一个可分解数
解释 - 当一个数可以被其因数的总数整除时,它就是一个可分解数。给定数字 10,它不是一个可分解数,因为它共有 4 个因数(1、2、5、10),而 10 不能被 4 整除,因此它不是一个可分解数。
下面程序中使用的方案如下:
输入一个整数类型的变量,例如 number。
将数据传递给 bool 类型的函数 check_Refactorable(int number)。
在函数 check_Refactorable(int number) 内部:
声明一个整数类型变量 count,初始化为 0。
从 i = 1 开始循环,直到 i 小于 sqrt(number)。在循环内,检查 IF number % i == 0,然后检查 IF number / i == i,如果是,则将 count 加 1。
否则,将 count 设置为 count + 2。
返回 number % count == 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
广告