#実現・解決したいこと
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14119893589
に投稿されている素因数分解を用いて最小公倍数と最大公約数を求めるプログラムをコピペして実行したのですが、最大公約数の値がおかしなものになっているのですがこれを最大公約数の値を表示するようにするにはどうすればいいですか?
#該当のソースコード
C
1#include<stdio.h> 2 3int main(void) 4{ 5 int i, j, k[2], n[2], a, b, c[2][100]; 6 7 printf("a="); 8 scanf("%d", &a); 9 printf("b="); 10 scanf("%d", &b); 11 12 n[0] = a; 13 n[1] = b; 14 15 for (i = 0;i<2;i++) { 16 k[i] = 0; 17 while (1) { 18 j = 2; 19 while (1) { 20 if (n[i] % j == 0) { 21 c[i][k[i]] = j; 22 k[i]++; 23 n[i] /= j; 24 break; 25 } 26 else j++; 27 } 28 if (n[i] == 1)break; 29 } 30 } 31 32 for (i = 0;i<2;i++) { 33 if (i == 0)printf("a="); 34 else printf("b="); 35 printf("%d", c[i][0]); 36 for (j = 1;j<k[i];j++)printf(",%d", c[i][j]); 37 printf("\n"); 38 } 39 40 for (i = k[0];i>-1;i--) { 41 for (j = k[1];j>-1;j--) { 42 if (c[0][i] == c[1][j]) { 43 printf("最小公倍数=%d\n", a*b / c[0][i]); 44 printf("最大公約数=%d\n", c[0][i]); 45 return 0; 46 } 47 } 48 } 49 50 printf("最小公倍数=%d\n", a*b); 51 printf("最大公約数なし\n"); 52 53 return 0; 54} 55
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/20 08:51