BohYoh.comトップページへ

基本情報技術者試験 平成14年度・春期・午後 問6 ソースプログラム

C言語講座へ  情報処理技術者試験対策講座へ  情報処理技術者試験対策講座(C言語)へ 
/*
    基本情報技術者試験          平成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" );
}