Fortranで素因数分解を実行したいのですが、最後まで分解できずに困っています。
たとえば
8 → 2, 2, 2
と出力したいのですが、実際には
8 → 2, 4
になってしまいます…!
問題のコードは以下の通りです。
Fortran
1program Prime_factorization 2 3 implicit none 4 5 integer n, m, i 6 integer remainder 7 8 9 do 10 11 write(*, *) ' 好きな数字を入力してください (if n <= 1 STOP) ' 12 read(*, *) n 13 if (n <= 1 ) stop ' Please input the number that is bigger than 1 ! ' 14 if (n > 10000) stop ' Is it bigger than 10,000 ! ' 15 16 m = n 17 18 do i = 2, int(sqrt(dble(n))) 19 20 21 if (mod(m, i) == 0) then 22 write(*, *) i 23 m = m / i 24 cycle 25 else 26 m = m 27 write(*, *) 'a' 28 endif 29 30 enddo 31 32 write (*, *) m 33 34 enddo 35 36end program Prime_factorization
出力が以下の通りになります。
output
1 好きな数字を入力してください (if n <= 1 STOP) 28 3 2 4 4 5
何卒ご教示よろしくお願いいたします…
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/13 13:32