检查在C ++中大量数字是否可以被2、3和5整除

在这里,我们将看到如何检查数字是否可以被2、3和5整除。在这种情况下,这个数字非常大。因此,我们将数字作为字符串。

如果一个数字可被2,3和5的LCM整除,则该数字将被2、3和5整除。因此,2、3、5的LCM为30。我们必须检查该数字是否可被30整除。一个数字可被10整除(最后一位为0)并被3整除(所有数字之和可被3整除)时,该数字可被30整除。

示例

#include <bits/stdc++.h>

using namespace std;

bool isDiv30(string num){

   int n = num.length();

   if(num[n - 1] != '0')

      return false;

      long sum = accumulate(begin(num), end(num), 0) - '0' * n;

   if(sum % 3 == 0)

      return true;

   return false;

}

int main() {

   string num = "353730746028908374890";

   if(isDiv30(num)){

      cout << "Divisible";

   } else {

      cout << "Not Divisible";

   }

}

输出结果

Divisible

以上是 检查在C ++中大量数字是否可以被2、3和5整除 的全部内容, 来源链接: utcz.com/z/322267.html

回到顶部