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