18/04/2024
18/04/2024
18/04/2024
Chương trình đếm số nguyên tố "đẹp" trong đoạn [1, N] (C++)
Mã nguồn:
C++
#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int n) {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
int sqrtN = sqrt(n);
for (int i = 5; i <= sqrtN; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) return false;
}
return true;
}
bool isBeautifulPrime(int n) {
return isPrime(n) && !string::npos == string(to_string(n)).find_first_of("357");
}
int countBeautifulPrimes(int N) {
int count = 0;
for (int i = 1; i <= N; i++) {
if (isBeautifulPrime(i)) count++;
}
return count;
}
int main() {
int N;
cin >> N;
int countBeautifulPrimes = countBeautifulPrimes(N);
cout << countBeautifulPrimes << endl;
return 0;
}
Hãy thận trọng khi sử dụng các đoạn mã.
Giải thích mã nguồn:
Hàm isPrime(n): Kiểm tra xem n có phải là số nguyên tố hay không.
Sử dụng các trường hợp cơ bản để loại bỏ các số không phải là số nguyên tố: n <= 1, n = 2, n = 3.
Sử dụng vòng lặp để kiểm tra các ước số lẻ từ 5 đến căn bậc hai của n, bước nhảy là 6 (loại trừ các bội số của 2 và 3).
Nếu không tìm thấy ước số nào, n là số nguyên tố.
Hàm isBeautifulPrime(n): Kiểm tra xem n có phải là số nguyên tố "đẹp" hay không.
Gọi hàm isPrime(n) để kiểm tra xem n có phải là số nguyên tố hay không.
Sử dụng hàm string::find_first_of để tìm kiếm các chữ số "3", "5" hoặc "7" trong chuỗi to_string(n).
Nếu không tìm thấy các chữ số "3", "5" hoặc "7", n là số nguyên tố "đẹp".
Hàm countBeautifulPrimes(N): Đếm số lượng số nguyên tố "đẹp" trong đoạn [1, N].
Sử dụng vòng lặp từ 1 đến N.
Gọi hàm isBeautifulPrime(i) để kiểm tra xem i có phải là số nguyên tố "đẹp" hay không.
Tăng biến count nếu i là số nguyên tố "đẹp".
Trả về giá trị của count.
Hàm main():
Nhập giá trị của N từ bàn phím.
Gọi hàm countBeautifulPrimes(N) để đếm số lượng số nguyên tố "đẹp" trong đoạn [1, N].
Xuất kết quả ra màn hình.
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời