基本情報技術者試験 平成14年度・春期・午後 問6 ソースプログラム
/*
基本情報技術者試験 平成14年度・秋期・午後 問6
BohYoh Shibata PREPARATION
*/
#include <stdio.h>
#define TRUE 1
#define FALSE 0
main()
{
int num, prime = TRUE, factor = 2;
printf( "数値(2以上の自然数)を入力してください。 : " );
scanf( "%d", &num );
printf( "%d =", num );
if ( num != factor )
while ( num % factor == 0 ) { /* 数値が 2 の倍数? */
if ( prime == FALSE ) printf( " ×" );
printf( " %d", factor );
num /= factor;
prime = FALSE;
}
factor++;
while ( num / factor >= factor ) {
while ( num % factor == 0 ) {
if ( prime == FALSE ) printf( " ×" );
printf( " %d", factor );
num /= factor;
prime = FALSE;
}
factor += 2 ;
}
if ( prime == TRUE ) printf( " 素数\n" );
else if ( num > 1 ) printf( " × %d\n", num );
else printf( "\n" );
}