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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP