【C言語】素因数分解
素因数分解は入門教材に向いているので、高校の時に作ったプログラムを発掘してきました。
標準入出力、if文、配列、for文を使う基本的なソフトです。読んでみてください。
ソースコード
/*---------------------------------------------*/ // 2014/07/22 // Prime factorization /*----------------------------------------------*/ #include<stdio.h> int main(void) { int num, i, cnt=0, data[1000]; printf("Please Input Natural Number : "); scanf("%d", &num); if( num < 0 ) { return 1; } if( num == 1 ) { printf("%d\n", num); } else { printf("%d = ", num); for(i = 2; i <= num; i++ ) { if( num % i == 0 ) { data[cnt] = i; num = num / i; i = 1; cnt++; } } } for( i = 0; i < cnt; i++ ) { printf("%d", data[i]); if( cnt != i+1 ) printf(" * "); } printf("\n"); return 0; }
コンパイル
$ gcc -o soinsu_bunkai soinsu_bunkai.c
実行結果
$ ./soinsu_bunkai Please Input Natural Number : 125 125 = 5 * 5 * 5
$ ./soinsu_bunkai Please Input Natural Number : 1024 1024 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
$ ./soinsu_bunkai Please Input Natural Number : 1254 1254 = 2 * 3 * 11 * 19