- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- #define N 1000000
- int arr[N];
- int test(int max, int min);
- int main(void)
- {
- int n, m = 2, sum = 1;
- int num = 1;
- cin >> n;
- for (int i = 1; i <= n; i++)//1-n的数据存到arr[]
- {
- arr[i] = i;
- }
- while (m <= n){
- if ((sum < arr[m])){//判断大小传递参数先大后小
- if ((arr[m] % sum != 0))
- sum = test(arr[m], sum);
- else
- sum = arr[m];
- }
- else{
- if (sum % arr[m] != 0)//传递参数先大后小
- sum = test(sum, arr[m]);
- }
- m++;
- }
- cout << sum << endl;
- system("pause");
- return 0;
- }
- int test(int max, int min){//辗转相除法求两个数的最小公倍数
- int index, i, j;
- int count;
- i = min;
- j = max;
- while ((max%min) != 0){
- index = min;
- min = max % min;
- max = index;
- }
- count = i*j / min;
- return count;
- }
- //该片段来自于http://www.codesnippet.cn/detail/2304201512416.html
来源: http://www.codesnippet.cn/detail/2304201512416.html