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