fork download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int a, b, max, lcm;
  5.  
  6. // 1つ目の入力チェック
  7. while (1) {
  8. printf("1つ目の正の整数を入力してください:");
  9. scanf("%d", &a);
  10. if (a > 0) break;
  11. printf("正ではありません。\n");
  12. }
  13.  
  14. // 2つ目の入力チェック
  15. while (1) {
  16. printf("2つ目の正の整数を入力してください:");
  17. scanf("%d", &b);
  18. if (b > 0) break;
  19. printf("正ではありません。\n");
  20. }
  21.  
  22. // 大きい方の値を基準にする
  23. max = (a > b) ? a : b;
  24. lcm = max;
  25.  
  26. // 最小公倍数を見つけるまでループ
  27. // lcmをmaxずつ増やしていき、aでもbでも割り切れる点を探す
  28. while (lcm % a != 0 || lcm % b != 0) {
  29. lcm += max;
  30. }
  31.  
  32. printf("\n%dと%dの最小公倍数は %d です。\n", a, b, lcm);
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0.71s 5324KB
stdin
Standard input is empty
stdout
1つ目の正の整数を入力してください:2つ目の正の整数を入力してください:
923132528と22048の最小公倍数は 0 です。