传送门

 

用类似筛法的原理,就好啦

 

——代码

#include <cstdio>

int n, ans; 
int a[1000001];

int main()
{
	int i, j;
	scanf("%d", &n);
	for(i = 1; i <= n; i++)
		for(j = i; j <= n; j += i)
			a[j]++;
	for(i = 1; i <= n; i++) ans += a[i];
	printf("%d\n", ans);
	return 0;
}

 

换一个思路,考虑每一个数对答案的贡献,发现

1 是 n / 1

2 是 n / 2

3 是 n / 3

。。。。。。

那么枚举就好了

#include <cstdio>

int n, ans; 
int a[1000001];

int main()
{
	int i, j;
	scanf("%d", &n);
	for(i = 1; i <= n; i++) ans += n / i;
	printf("%d\n", ans);
	return 0;
}

  

相关文章:

  • 2021-05-20
  • 2021-07-11
  • 2021-06-15
  • 2021-07-18
  • 2022-12-23
  • 2021-08-26
  • 2021-06-02
猜你喜欢
  • 2022-01-15
  • 2022-12-23
  • 2022-03-04
  • 2022-01-18
  • 2022-01-14
相关资源
相似解决方案