Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int gcd(int, int);
  4. int lcm(int, int);
  5. int menu()
  6. {
  7. int select;
  8. printf("**********************************\n");
  9. printf("* 1. 求兩數之最大公因數 *\n");
  10. printf("* 2. 求兩數之最小公倍數 *\n");
  11. printf("* 0. 結束程式 *\n");
  12. printf("**********************************\n");
  13. printf("請輸入選項: ");
  14. scanf_s("%d", &select);
  15. return select;
  16. }
  17.  
  18. int main()
  19. {
  20. int select;
  21. int num1, num2,result;
  22. while (1)
  23. {
  24. select = menu();
  25. switch (select)
  26. {
  27. if (select == 0)
  28. {
  29. break;
  30. }
  31. case 1:
  32.  
  33. printf("======求兩數之最大公因數========\n");
  34. printf("請輸入兩整數:");
  35.  
  36. int gcd();
  37. scanf_s("%d %d", &num1, &num2);
  38. result = gcd(num1, num2);
  39. printf("(%d,%d)=%8d\n\n", num1, num2,result);
  40. break;
  41. case 2:
  42.  
  43. printf("======求兩數之之最小公倍數========\n");
  44. printf("請輸入兩整數:");
  45.  
  46. int lcm();
  47. scanf_s("%d %d", &num1, &num2);
  48. printf("[%d,%d]=%8d\n\n", num1, num2, lcm(num1, num2));
  49. break;
  50. default:
  51. printf("輸入錯誤,請重新輸入");
  52. break;
  53. }
  54.  
  55. }
  56. system("pause");
  57. }
  58. int gcd(int num1,int num2)
  59. {
  60. int temp;
  61. while (num1%num2 != 0)
  62. {
  63. temp = num1%num2;
  64. num1 = num2;
  65. num2 = temp;
  66. }
  67. return num2;
  68. }
  69.  
  70. int lcm(int num1,int num2)
  71. {
  72. return num1*num2 / gcd(num1, num2);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement