素因数分解が上手く行われない。
解決したいこと
素因数分解が上手く行われない
素因数分解を行うプログラムを作成したいです。
(例)
60を入力
2 2 3 5が出力される
下記のコードですと2,3,5というように想定とは反する結果が出力されてしまうのですが何故でしょうか?
想定している処理としては
①60を入力
②for文を用いて60が割り切れる数を2-60まで順番に探していく
③if文内で、もし割り切れる数字を見つけたら、printfで出力
④元々の60から30へ数字を更新
⑤また①の処理を行いたいのでi = 2に初期化
①の処理を繰り返す。
どなたかご教示をお願い致します。
該当するソースコード
#include <stdio.h>
int main(void) {
int n, i;
scanf("%d", &n);
for (i = 2; i <= n; i++) {
if(n%i == 0){
printf("%d",i);
n/=i;
i = 2;
}
}
return 0;
}
0