fork download
  1.  
  2. /* 田中 C言語 演習5 */
  3.  
  4. #include <stdio.h>
  5.  
  6. /* main関数の定義 */
  7. int main(void)
  8. {
  9. int a[100]; //互除法を行う自然数を入れる配列
  10. int num;
  11. int i;
  12.  
  13. printf("ユークリッドの互除法を用いて2つの自然数の最大公約数を求めます。\n");
  14.  
  15. /* 二つの自然数の標準入力・確認 */
  16. printf("1つ目の自然数を入力してください。(0<n)\n");
  17. scanf("%d", &a[0]);
  18. printf("入力された自然数は%dです。\n", a[0]);
  19.  
  20. printf("2つ目の自然数を入力してください。(0<n)\n");
  21. scanf("%d", &a[1]);
  22. printf("入力された自然数は%dです。\n", a[1]);
  23.  
  24.  
  25. /* エラー処理 */
  26. if( a[0] <= 0 || a[1] <= 0){
  27. printf("0以上の数値を入力してください\n");
  28. return 1;
  29. }
  30.  
  31.  
  32. /* a>bになるように調整 */
  33. if(a[1] > a[0]){
  34. num = a[0];
  35. a[0] = a[1];
  36. a[1] = num;
  37. }
  38.  
  39. /* 計算処理 */
  40. for(i=2; i<100 ;i++){
  41. a[i] = a[i-2] % a[i-1];
  42. if(a[i] == 0){
  43. printf("%dと%dの最大公約数は%dです\n", a[0], a[1], a[i-1]);
  44. break;
  45. }
  46. }
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 5320KB
stdin
167.3
97
stdout
ユークリッドの互除法を用いて2つの自然数の最大公約数を求めます。
1つ目の自然数を入力してください。(0<n)
入力された自然数は167です。
2つ目の自然数を入力してください。(0<n)
入力された自然数は32765です。
32765と167の最大公約数は1です