Được đưa ra với một số ‘n’ và nhiệm vụ là xác định xem số nguyên dương đã cho có phải là một proth hay không và hiển thị kết quả dưới dạng đầu ra.
Số Proth là gì?
Số thứ tự được đưa ra bởi
$$ N =k \ cdot \:2 ^ {n} + 1 $$
Trong đó, n là số nguyên dương và k là số nguyên dương lẻ
Một vài số proth đầu tiên được đưa ra dưới đây -
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97.......
Đầu vào
number: 17
Đầu ra
its a proth number
Đầu vào
number: 18
Đầu ra
its not a proth number
Phương pháp tiếp cận được sử dụng trong chương trình nhất định như sau
-
Nhập số để kiểm tra tình trạng
-
Áp dụng công thức đã cho để kiểm tra xem nó có phải là số thứ tự hay không
-
Nếu điều kiện giữ đúng, hãy in số thứ tự của nó
-
Nếu điều kiện không có giá trị true, hãy in nó không phải là số thứ tự
Thuật toán
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
Ví dụ
#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; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
its a proth number