在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP