0을 입력할 때까지 소인수를 구함.
#include <stdio.h> int main( ) { int i, j; int input, origin; int arr[100]; printf( "0 이하를 입력하면 종료\n\n" ); while( 1 ) { printf( "수를 입력하세요 : " ); scanf( "%d", &input ); if( input <= 0 ) return 0; origin = input; i = 2; j = 0; //수인수분해 부분 while( input>1 ) { if( input%i == 0 ) { input = input/i; arr[j] = i; ++j; } if( input%i != 0 ) i++; } //출력 if( origin != 1 ) { printf( "소인수분해 결과 : " ); for( i=0 ; i<j ; i++ ) { printf( "%d", arr[i] ); if( i<j-1 ) printf( " x " ); if( j-1 == i ) printf( " = %d", origin ); } } if( origin==1 ) printf( "2이상을 입력" ); printf( "\n\n" ); } return 0; }
'예제 모음 > 정보처리기사-수학' 카테고리의 다른 글
[정보처리기사] 배수의 개수와 합 - C언어 구현 (0) | 2013.03.31 |
---|---|
[정보처리기사] 최대값, 최소값 구하기 - C언어 구현 (0) | 2013.03.31 |
[정보처리기사] 약수 구하기 - C언어 구현 (2) | 2013.03.31 |
[정보처리기사] 최대 공약수(gcm), 최소공배수(lcm) - C언어 구현 (0) | 2013.03.31 |
[정보처리기사] 소수의 합 - C언어 구현 - 에라토스테네스의 체를 이용한 소수의 합 구하기 (2) | 2013.03.31 |
[정보처리기사] 소수의 합 - C언어 구현 (0) | 2013.03.31 |
[정보처리기사] 소수 판별 - C언어 구현 (0) | 2013.03.31 |