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(int number)bool 类型的函数。

  • 函数内部 check_Refactorable(int number)

    • 将整数类型变量声明为计数为 0。

    • 从 i 到 1 开始循环 FOR,直到 i 小于sqrt(number)。在循环内,检查 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

以上是 C++ 中的可重构数 的全部内容, 来源链接: utcz.com/z/317255.html

回到顶部