题目:p215 寻找不能被[2,31]中连续两个数整除,但能被其它数整除的数
long long GCD(long long a, long long b) { if (b == 0) return a; return GCD(b, a%b); } long long LCM(long long a, long long b) { return a*b/GCD(a,b); } long long FindNumber() { long long lcm=2; for (int j=2; j<31; j++) { lcm=1; for (int i=2; i<=31; i++) { if (i!=j && i!=j+1) lcm = LCM(i, lcm); } if (lcm%j!=0 && lcm%(j+1)!=0) cout << lcm << endl; } return lcm; }
2123581660200
2329089562800
其它数:
if (lcm%j!=0 && lcm%(j+1)!=0)
cout << lcm << endl;
改为
while (lcm%j!=0 && lcm%(j+1)!=0 && lcm<MAX)
lcm+= lcm;