글의 권한은 정등어에게있으며
 무단배포 및 불펌을 금하며 글을 퍼가고 싶으시면 링크만~
부탁드려요 꾸벅
진짜 불펌하지말아요 ㅠㅠ저 웁니다

 




#include <iostream>
using namespace std;

void main(){
 while(1){
  int result[100]={0};   //소인수분해의 결과값 저장 배열
  int N=0;    //소인수분해 할 정수
  int K=2;    //N을 나누어보는 수
  int C=0;    //소인수 계산처리를 위한 변수
  int Y=1;    //소인수 분해한 결과를 출력을 위한 변수

  cout<<"소인수분해 하려는 값을 입력해 주세요(0 to quit) : ";   cin>>N;

  if(N > 1){ //1보다 크다면(1은 소수가 아니다) 소인수분해,아니라면 다시입력

   while(N!=1){
    if(N%K==0){ //나머지가 0이라면 N은 소인수,아니라면 K+1      ++C;      result[C-1]=K;      N=N/K;     }else{
     ++K;     }    }

   //출력 구문    for(int i=0;i<C;i++){     while(result[i]==result[i+1]){      i++;      Y++;     }
    cout<<result[i]<<"^"<<Y;
    Y=1;

    if(i<C-1){
     cout<<" * ";
    }
   }
   //출력 끝

  }else if(N==0){//0을 입력하면 종료
   break;
  }else{
   cout<<"2 이상의 정수를 입력해 주세요"<<endl;
   continue;
  }
  cout<<endl;
 }
}

by Conscientia 2011. 7. 25. 14:25
| 1 |