- void swith_param_order(int *a, int *b)
- {
- int tmp;
- if(a<b)
- {
- tmp=a;
- a=b;
- b=tmp;
- }
- }
- int max_common_divisor(int a, int b)
- {
- int r;
- int divisor;
- swith_param_order(&a,&b);
- r=a%b;
- if(r==0)
- {
- divisor=b;
- }
- else
- {
- divisor=max_common_divisor(b,r);
- }
- return divisor;
- }
- int smallest_multiple(int num)
- {
- int i;
- int result=1;
- for(i=1;i<=num;i++)
- {
- if(result%i==0)
- {
- continue;
- }
- else
- {
- //calculate the smallest multiple of result and i
- result=(result*i)/max_common_divisor(result,i);
- }
- }
- return result;
- }
- void TestSmallestMultiple()
- {
- int num=20;
- printf("Smallest Multiple:%d\\n",smallest_multiple(num));
- }
- //该片段来自于http://www.codesnippet.cn/detail/051220137759.html
来源: http://www.codesnippet.cn/detail/051220137759.html