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

โปรแกรมเช็คว่าตัวเลขเป็นเลข Proth หรือเปล่า ในภาษา C++


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

จำนวน Proth คืออะไร

หมายเลข proth ถูกกำหนดโดย

$$N=k\cdot\:2^{n}+1$$

โดยที่ n เป็นจำนวนเต็มบวกและ k เป็นจำนวนเต็มบวกคี่

หมายเลข proth สองสามตัวแรกจะได้รับด้านล่าง -

3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97.......

ป้อนข้อมูล

number: 17

ผลผลิต

its a proth number

ป้อนข้อมูล

number: 18

ผลผลิต

its not a proth number

แนวทางที่ใช้ในโปรแกรมมีดังนี้

  • ใส่ตัวเลขเพื่อตรวจสอบสภาพ

  • ใช้สูตรที่กำหนดเพื่อตรวจสอบว่าเป็นเลข proth หรือไม่

  • หากเงื่อนไขเป็นจริงให้พิมพ์หมายเลข proth

  • ถ้าเงื่อนไขไม่ถือจริงก็ไม่ใช่เลข proth

อัลกอริทึม

Step 1→ declare function to calculate power of 2
   bool isPower(int num)
      return (num && !(num & (num - 1)))
Step 2→ Declare function to check if a number is a proth number or not
   bool isProth(int num)
      declare int k = 1
      While (k < (num / k))
         IF (num % k == 0)
            IF (isPower(num / k))
               return true
            End
            Set k = k + 2
         End
      End
      return false
Step 3→ In main()
   Declare int num = 17
   IF (isProth(num - 1))
      Print "its a proth number"
   End
   Else
      Print "its not a proth number"
End

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
//function to calculate power of 2
bool isPower(int num){
   return (num && !(num & (num - 1)));
}
//function to check if a number is a proth number
bool isProth(int num){
   int k = 1;
   while (k < (num / k)){
      if (num % k == 0){
         if (isPower(num / k))
            return true;
      }
      k = k + 2;
   }
   return false;
}
int main(){
   int num = 17;
   if (isProth(num - 1))
      cout << "its a proth number";
   else
      cout << "its not a proth number";
   return 0;
}

ผลลัพธ์

หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

its a proth number