Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

k-Rough Number หรือ k-Jagged Number ใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ตรวจสอบว่าตัวเลขที่ระบุเป็น k-rough หรือไม่ หรือ k-jagged จำนวนหรือไม่

จำนวนที่มีตัวประกอบเฉพาะน้อยที่สุดมากกว่าหรือเท่ากับ k ที่กำหนด เรียกว่า k-rough หรือ k-jagged เลขที่

มาดูขั้นตอนการแก้ปัญหากัน

  • เริ่มต้นตัวเลข n และ k .
  • หาจำนวนเฉพาะที่เป็นตัวประกอบของ n และเก็บไว้ในเวกเตอร์
  • รับองค์ประกอบแรกจากเวกเตอร์แล้วเปรียบเทียบกับ k เพื่อตรวจสอบว่า n คือ k-rough หรือ k-jagged จำนวนหรือไม่

ตัวอย่าง

มาดูโค้ดกันเลย

#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;
}

ผลลัพธ์

หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้

75 is a 3 rough number

บทสรุป

คุณสามารถหลีกเลี่ยงการเก็บจำนวนเฉพาะทั้งหมดในเวกเตอร์ได้ และหาตัวประกอบเฉพาะตัวแรกของ n และเปรียบเทียบกับ k เพื่อให้ได้ผลลัพธ์ที่ต้องการ นำแนวคิดที่คล้ายกับแนวคิดข้างต้นมาใช้โดยมีพื้นที่และเวลาน้อยกว่า

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น