숫자 'n'이 주어지고 주어진 양의 정수가 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 번호를 인쇄하십시오.
-
조건이 true를 유지하지 않으면 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