欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛客练习赛25A题-找规律

程序员文章站 2022-03-13 16:45:29
...

链接:https://www.nowcoder.com/acm/contest/158/A
来源:牛客网

题目描述

q次询问,每次给一个x,问1到x的因数个数的和。

输入描述:

第一行一个正整数q ;
接下来q行,每行一个正整数 x

输出描述:

共q行,每行一个正整数表示答案
示例1
输入
4
1
2
3
10
输出
1
3
5
27

说明

1的因数有1

2的因数有1,2

3的因数有1,3

以此类推

备注:

1<=q<=10 ,1<= x<=109

分析

ix个数中作为因子出现了多少次。因为ixi总是成对出现的,因此只需要枚举到t=x就可以了。最后减去最后减去t2个就行了,图中归纳可得。
牛客练习赛25A题-找规律

代码

#include <bits/stdc++.h>
using namespace std;
long long q,x;
int main(void)
{
    cin >> q;
    while(q --)
    {
        cin >> x;
        long long ans = 0,t = sqrt(x);
        for(int i = 1;i <= t;i ++)
            ans += (x / i);
        cout << ans*2 - t * t << endl;
    }
    return 0;
}
相关标签: 数论