期望得分:100+100+50=250
实际得分:100+100+30=230
A 约数之和(count.pas/c/cpp)
TL:1S ML:128MB
【Description】
我们用 D(x)表示正整数 x 的约数的个数。给定一个正整数 N,求 D(1)+D(2)+…+D(N)。
【Input】
一行一个正整数 N。
【Output】
一行一个整数,表示答案
【Sample Input】
5
【Sample Output】
10
【Hint】
样例解释:
D(1)=1 D(2)=2
D(3)=2 D(4)=3 D(5)=2
对于 20%的测试数据:N<=1000
对于 50%的测试数据:N<=100000
对于 100%的测试数据:N<=10000000
枚举i,那么i是n/i个数的约数
#include<cstdio> using namespace std; int main() { freopen("count.in","r",stdin); freopen("count.out","w",stdout); int n,ans=0; scanf("%d",&n); for(int i=1;i<=n;i++) ans+=n/i; printf("%d",ans); }