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

นับตัวเลขในช่วงที่มีตัวหารเล็กที่สุดเป็น K ใน C++


ในบทช่วยสอนนี้ เราจะอภิบายโปรแกรมเพื่อหาตัวเลขในช่วงที่มีตัวหารเล็กที่สุดเป็น K

สำหรับเรื่องนี้ เราจะได้รับช่วง [a,b] งานของเราคือนับตัวเลขในช่วงที่กำหนดที่มีตัวหารเล็กที่สุดเป็น K

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

// checking if K is a prime
bool if_prime(int k) {
    if (k <= 1)
        return false;
    for (int i = 2; i < k; i++)
        if (k % i == 0)
            return false;
    return true;
}

// checking if any number is divisible by K
int check(int num, int k) {
    int flag = 1;
    for (int i = 2; i < k; i++) {
        if (num % i == 0)
            flag = 0;
    }
    if (flag == 1) {
        if (num % k == 0)
            return 1;
        else
            return 0;
    }
    else
        return 0;
}

// counting the possible numbers
int findCount(int a, int b, int k) {
    int count = 0;
    if (!if_prime(k))
        return 0;
    else {
        int ans;
        for (int i = a; i <= b; i++) {
            ans = check(i, k);
            if (ans == 1)
                count++;
            else
                continue;
        }
    }
    return count;
}

int main() {
    int a = 2020, b = 6300, k = 29;
    cout << findCount(a, b, k);
    return 0;
}

เอาต์พุต

28