Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một số lớn có chia hết cho 2, 3 và 5 hay không trong C ++

Sau đây chúng ta sẽ xem cách kiểm tra một số có chia hết cho 2, 3 và 5 hay không. Trong trường hợp này số lượng là rất lớn. Vì vậy, chúng tôi đặt số dưới dạng chuỗi.

Một số sẽ chia hết cho 2, 3 và 5 nếu số đó chia hết cho LCM của 2,3 và 5. Vậy LCM của 2, 3, 5 là 30. Ta phải kiểm tra xem số đó có chia hết cho 30 hay không. Số chia hết cho 30 khi chia hết cho 10 (chữ số tận cùng là 0) và chia hết cho 3 (tổng các chữ số chia hết cho 3)

Ví dụ

#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";
   }
}

Đầu ra

Divisible