(1)(枚举因数)从小到大打印正整数 n 的所有正因数。 试补全枚举程序。
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> fac; fac.reserve((int)ceil(sqrt(n))); int i; for (i = 1; i * i < n; ++i) { if () { fac.push_back(i); } } for (int k = 0; k < fac.size(); ++k) { cout << << " "; } if () { cout << << " "; } for (int k = fac.size() - 1; k >= 0; --k) { cout << << " "; } }
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)