Trong hướng dẫn này, ta sẽ thảo luận chương trình để tìm các số trong một khoảng có ước nhỏ nhất là K.
Cho khoảng [a, b]. Nhiệm vụ là đếm các số trong khoảng có ước nhỏ nhất (khác 1) bằng K.
Ví dụ
#include <bits/stdc++.h>
using namespace std;
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;
}
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;
}
return 0;
}
int findCount(int a, int b, int k) {
int count = 0;
if(!if_prime(k)) return 0;
else {
for(int i = a; i <= b; i++) {
if(check(i, k)) count++;
}
}
return count;
}
int main() {
int a = 2020, b = 6300, k = 29;
cout << findCount(a, b, k);
return 0;
}
Kết quả
28