星星的个数 题目描述 你每天都会收集不同数量的星星贴纸。当收集到第 k 天时 (1≤k≤n),他当天获得的贴纸数量是 k 张,而每张贴纸上印着的星星数量等于 k 这个数字的因数个数(比如数字6有4个因数:1,2,3,6,就印4颗星星)。请计算你这 n 天收集到的星星总数。 输入格式 输入一个整数 n。 输出格式 共一行,这 n 天收集到的星星总数。 输入样例#1 4 输出样例#1 23 输入样例#2 100 输出样例#2 26879 输入样例#3 10000000 输出样例#3 838627288460105 说明提示 数据范围 1 ≤ N ≤ 107 样例1说明 1× 1 + 2× 2 + 3× 2 + 4× 3 =23 限制 时间限制:1000ms 内存限制:512MiB
正确答案:参考程序(Python):n=int(input());s=0;for k in range(1,n+1):cnt=0;i=1;while i*i<=k:if k%i==0:cnt+=1 if i*i==k else 2;i+=1;s+=k*cnt;print(s)。样例4→23,100→26879。核心:因数个数加权和。
试卷来源:202506 青少年等级考试C/C++真题六级