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 |