在 C++ 中检查一个大数是否能被 2、3 和 5 整除


这里我们将介绍如何检查一个数是否能被 2、3 和 5 整除。这里数字是一个非常大的数。因此,我们将该数字设为字符串。

一个数如果能被 2、3 和 5 的最小公倍数整除,那么它就能被 2、3 和 5 整除。因此,2、3、5 的最小公倍数是 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

更新时间:2019 年 9 月 27 日

216 次浏览

开启您的职业生涯

完成课程后获取认证

开始学习
广告