Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตรวจสอบว่าจำนวนมากหารด้วย 2, 3 และ 5 ได้หรือไม่ใน C++


ในที่นี้เราจะมาดูวิธีการตรวจสอบตัวเลขที่หารด้วย 2, 3 และ 5 ว่าลงตัวหรือไม่ ในกรณีนี้จำนวนเป็นจำนวนที่มาก ดังนั้นเราจึงใส่ตัวเลขเป็นสตริง

ตัวเลขจะหารด้วย 2, 3 และ 5 ลงตัวถ้าตัวเลขนั้นหารด้วย LCM ที่ 2,3 และ 5 ลงตัว ดังนั้น LCM ของ 2, 3, 5 จึงเป็น 30 เราต้องเช็คว่าจำนวนนั้นหารด้วย 30 ลงตัวหรือไม่ ตัวเลขหารด้วย 30 ลงตัวเมื่อหารด้วย 10 ลงตัว (หลักสุดท้ายคือ 0) และหารด้วย 3 ลงตัว (ผลรวมของตัวเลขทั้งหมดหารด้วย 3)

ตัวอย่าง

#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