(枚举因数)从小到大打印正整数 n 的所有正因数。
试补全枚举程序。
01 #include <bits/stdc++.h>
02 using namespace std;
03
04 int main() {
05 int n;
06 cin >> n;
07
08 vector<int> fac;
09 fac.reserve((int)ceil(sqrt(n)));
10
11 int i;
12 for (i = 1; i * i < n; ++i) {
13 if (①) {
14 fac.push_back(i);
15 }
16 }
17
18 for (int k = 0; k < fac.size(); ++k) {
19 cout << ② << " ";
20 }
21 if (③) {
22 cout << ④ << " ";
23 }
24 for (int k = fac.size() - 1; k >= 0; --k) {
25 cout << ⑤ << " ";
26 }
27 }
①处应填( )
n % i == 0
n % i == 1
n % (i-1)== 0
n % (i-1) == 1
②处应填( )
n / fac[k]
fac[k]
fac[k]-1
n / (fac[k]-1)
③处应填( )
(i-1) * (i-1) == n
(i-1) * i == n
i * i == n
i * (i-1) == n
④处应填( )
n-i
n-i+1
i-1
i
⑤处应填( )
n / fac[k]
fac[k]
fac[k]-1
n / (fac[k]-1)