要求到n为止每个数的约数的和。
若用暴力求解一个一个地算容易超时,若使用公式法则简单得多,也不难理解,每次n/i表示从1到n能被i整除的数。将其结果累加起来便是我们想要的答案。
#include<iostream> using namespace std; //n之前约数的累加 int n, ans; int main(void) { cin >> n; for (int i = 1; i <= n; i++)ans += n / i; cout << ans; }
要求到n为止每个数的约数的和。
若用暴力求解一个一个地算容易超时,若使用公式法则简单得多,也不难理解,每次n/i表示从1到n能被i整除的数。将其结果累加起来便是我们想要的答案。
#include<iostream> using namespace std; //n之前约数的累加 int n, ans; int main(void) { cin >> n; for (int i = 1; i <= n; i++)ans += n / i; cout << ans; }