fork(1) download
  1. #include<stdio.h>
  2. #include<math.h>
  3. int p[100000] = {0},i;
  4. int max[100000] = {0};
  5. int j=0;
  6. int factors(int num)
  7. {
  8. // j=0;
  9. int count[100000] = {0};
  10. if(num%2==0)
  11. {
  12. p[j++] = 2;
  13. }
  14.  
  15. while(num%2==0)
  16. {
  17. // p[j++] = 2;
  18. count[2]++;
  19. num = num/2;
  20. }
  21.  
  22. for(i=3;i<=sqrt(num);i=i+2)
  23. {
  24. if(num%i==0)
  25. p[j++] = i;
  26. while(num%i==0)
  27. {
  28. count[i] = count[i]+1;
  29. num = num/i;
  30. // p[j++] = i;
  31.  
  32. }
  33.  
  34. }
  35. if(num>2)
  36. {
  37. p[j++] = num;
  38. count[num] = count[num] + 1;
  39. }
  40.  
  41. // for(i=0;i<j;i++)
  42. // printf("%d ",p[i]);
  43. // printf("\n");
  44. for(i=0;i<j;i++)
  45. {
  46. // printf("count of %d is %d\n",p[i],count[p[i]]);
  47. if(count[p[i]]>max[p[i]])
  48. max[p[i]] = count[p[i]];
  49. // printf("maximum power of %d is %d\n",p[i],max[p[i]]);
  50. }
  51. }
  52. int main()
  53. {
  54. int num1,num2,num3,num4;
  55. int lcm=1;
  56. scanf("%d",&num1);
  57. scanf("%d",&num2);
  58. scanf("%d",&num3);
  59. scanf("%d",&num4);
  60. factors(num1);
  61. factors(num2);
  62. factors(num3);
  63. factors(num4);
  64.  
  65. // printf("%d",lcm);
  66. for(i=0;i<100000;i++)
  67. {
  68. if(i!=0)
  69. {
  70. lcm = lcm*pow(i,max[i]);
  71. }
  72. }
  73. printf("%d",lcm);
  74. // printf("maximum power of %d is %d\n",p[i],max[p[i]]);
  75.  
  76.  
  77. return 0;
  78. }
  79.  
  80.  
Success #stdin #stdout 0s 3344KB
stdin
23 2 3 5
stdout
690