Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 번호가 Proth 번호인지 확인하는 프로그램

<시간/>

숫자 '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