在 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
广告