我发现我用C++实现的时候搞复杂了,还用了集合去一个个insert它的约数,不过我其实是想复习一下STL的set类型,嗯对,就是这样。
用Python写的就正常多了,就是判断余数是否为0就可以了。
Code C++#include #include using namespace std; int main() { int n = 78120; set<int> s; for(int i = 1; i < n + 1; i++) { float div = n / i; if(i * int(div) == n) { // 判断 div 是否为整数且满足条件 cout << i << " * " << div << " = " << i * div << endl; s.insert(i); s.insert(int(div)); } } cout << "ans = " << s.size() << endl; return 0; }Python
if __name__ == '__main__': num, ans = 78120, 0 for i in range(1, num + 1): if num % i == 0: ans += 1 print(ans)Answer:96