~cpp #include<iostream> using namespace std; int* set_prime_array(int* prime_array,int number); bool check_prime_number(int n); void find_four_number(int* prime_array,int count,int number); int count=0; //만들어진 소수의 총 수를 구한다. void main() { int number = 0; cout<<"수를 입력하세요(단. 0<N<10000000) :"; cin>>number; prime_array = set_prime_array(prime_array,number); find_four_number(prime_array,count,number); delete[] prime_array; } int* set_prime_array(int* prime_array,int number) { int* prime_array = new int[number]; for(int i=1 ; i<number ; i++) { if(check_prime_number(i)==true) { prime_array[count]=i; count++; } } return prime_array; } bool check_prime_number(int n)//전달된 값이 소수인지를 판별합니다. { if(n==1) return false; else if(n==2 || n==3) //숫자 1,2,3은 소수이다. return true; else if(n>3) { for(int j=2 ; j<n ; j++) { if(n%j==0) return false; //사이에 나누어 떨어지는 수가 하나라도 있으면... } return true; //사이에 나누어 떨어지는가 없다. } return false; } void find_four_number(int* prime_array,int count,int number) { int temp=0; for(int a=0;a<count;a++) for(int b=0;b<count;b++) for(int c=0;c<count;c++) for(int d=0;d<count;d++) { if(prime_array[a]+prime_array[b]+prime_array[c]+prime_array[d]==number) { cout<<prime_array[a]<<","<<prime_array[b]<<","<<prime_array[c]<<","<<prime_array[d]; cout<<endl; temp++; } } if(temp==0) cout<<"조건을 만족하는 정답은 없습니다.!!!!"; }