ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมค้นหาตัวเลขในช่วงที่มีตัวประกอบน้อยที่สุดเป็น 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