Computer >> Máy Tính >  >> Lập trình >> C ++

k-Số thô hoặc k-Số răng cưa trong C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình để kiểm tra xem số đã cho có phải là k-nhám hay không hoặc k-jagged số hay không.

Số có thừa số nguyên tố nhỏ nhất lớn hơn hoặc bằng k đã cho, được gọi là k-thô hoặc k-jagged số.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo các số n k .
  • Tìm tất cả các số nguyên tố là thừa số của n và lưu trữ chúng trong một vectơ.
  • Lấy phần tử đầu tiên từ vectơ và so sánh nó với k để kiểm tra xem n k-thô hoặc k-jagged số hay không.

Ví dụ

Hãy xem mã.

#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
   for (int i = 2; i * i <= n; i++) {
      if (n % i == 0) {
         return false;
      }
   }
   return true;
}
vector<int> getPrimes(int n) {
   vector<int> primes;
   for (int i = 2; i < n; i++) {
      if (n % i == 0 && isPrime(i)) {
         primes.push_back(i);
      }
   }
   return primes;
}
bool isRoughNumber(int n, int k) {
   vector<int> primes = getPrimes(n);
   return primes[0] >= k;
}
int main() {
   int n = 75, k = 3;
   if (isRoughNumber(n, k)) {
      cout << n << " is a " << k << " rough number" << endl;
   }else {
      cout << n << " is not a " << k << " rough number" << endl;
   }
   return 0;
}

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

75 is a 3 rough number

Kết luận

Bạn có thể tránh lưu trữ tất cả các số nguyên tố trong vectơ. Và tìm thừa số nguyên tố đầu tiên của n và so sánh nó với k để có được đầu ra mong muốn. Thực hiện ý tưởng tương tự như ý tưởng ở trên với ít phức tạp hơn về không gian và thời gian.

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.