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

숫자의 재귀 합은 C++에서 소수이거나 아니오입니다.

<시간/>

입력으로 정수 변수 번호가 제공됩니다. 목표는 입력 숫자의 자릿수의 합을 계산하고 그 합이 소수인지 확인하는 것입니다. 자릿수의 합으로 얻은 숫자가 한 자리 숫자가 될 때까지 이것을하십시오. 그 숫자가 소수인지 아닌지 확인하십시오. 입력된 숫자가 123인 경우 자릿수의 합은 1+2+3=6이 되며 이는 소수가 아니며 6도 한 자리 숫자입니다.

이를 위한 다양한 입력 출력 시나리오를 살펴보겠습니다.

입력 - 숫자=12341

출력 − 숫자의 자릿수의 재귀 합은 PRIME입니다.

설명 -

1+2+3+4+1=11

1+1=2

2는 소수입니다.

입력 - 숫자=1664

출력 − 숫자의 자릿수의 재귀 합은 소수가 아닙니다.

설명 -

1+6+6+4=17

1+7=8

8은 소수가 아닙니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 정수 변수를 숫자로 선언합니다.

  • 함수에 데이터를 Recursively_Prime(숫자)

    로 전달합니다.
  • 함수 내부에서 Recursively_Prime(숫자)

    • 함수 호출에 대한 번호를 sum(number)으로 설정합니다.

    • 숫자가 3인지 아니면 숫자가 3인지 또는 숫자가 5인지 또는 숫자가 7인지 확인한 다음 PRIME을 인쇄하십시오.

    • 그렇지 않으면 NOT PRIME을 인쇄하십시오.

  • 함수 내부 sum(int number)

    • IF 번호가 0인지 확인한 다음 0을 반환합니다.

    • ELSE, % 9가 0이면 9를 반환합니다.

    • 그렇지 않으면 숫자 % 9입니다.

  • 결과를 인쇄하십시오.

#include<iostream>
using namespace std;
int sum(int number){
   if(number == 0){
      return 0;
   }
   else{
      if(number % 9 == 0){
         return 9;
      }
      else{
         return number % 9;
      }
   }
}
void Recursively_Prime(int number){
   number = sum(number);
   cout<<"Recursive sum of digits of a number is ";
   if(number == 2 || number == 3 || number == 5 || number == 7){
      cout << "PRIME";
   }
   else{
      cout << "NOT PRIME";
   }
}
int main(){
   int number = 5555;
   Recursively_Prime(number);
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Recursive sum of digits of a number is PRIME