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

Đếm tất cả các số trong một phạm vi có hệ số nhỏ nhất là K trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm các số trong một phạm vi có thừa số nhỏ nhất là K.

Đối với điều này, chúng tôi sẽ được cung cấp với một phạm vi [a, b]. Nhiệm vụ của chúng ta là đếm các số trong phạm vi đã cho có thừa số nhỏ nhất là K.

Ví dụ

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

Đầu ra

28