#include <iostream> using namespace std; int main() { int x; cin >> x; int output = -1; int i = x; while (i <= 2 * x) { // 注意 while 处理多个 case for (int j = i - 1; j > 1; j--) { if (i % j == 0) { output = i; } } i++; } cout << output; } // 64 位输出请用 printf("%lld")
- 判断合数:判断一个数是否为合数,要做一次遍历。判断一列数是否为合数,要有嵌套循环。
- 缩小遍历范围:改为for (int j = 2; j * j <= i ; j++)。从小往大找因数,然后可以把寻找范围缩小许多。