zoukankan      html  css  js  c++  java
  • 牛客练习赛25-A-因数个数和

    题目描述

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

    输入描述:

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

    输出描述:

    共q行,每行一个正整数表示答案

    输入

    4
    1
    2
    3
    10

    输出

    1
    3
    5
    27

    说明

    1的因数有1
    2的因数有1,2
    3的因数有1,3
    以此类推

    备注:

    1<=q<=10 ,1<= x<=10^9
    解题思路:简单打一下表结合OEIS大法,其实求1-n的因子个数的和与此求和一样,可以手推找规律。
    AC代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;LL n,ans,q;
     4 int main(){
     5     while(cin>>q){
     6         while(q--){
     7             cin>>n;ans=0;
     8             for(LL i=1;i*i<=n;++i){
     9                 if(n/i!=i)ans+=n/i+(n/i-n/(i+1))*i;
    10                 else ans+=i;
    11             }
    12             cout<<ans<<endl;
    13         }
    14     }
    15     return 0;
    16 }
  • 相关阅读:
    字符,字符串,字节
    111
    串口通信
    字符编码
    枚举和结构体
    参数数组
    .Net垃圾回收机制
    try{ } catch{ } finally{ }
    LVS 工作原理图文讲解
    自动化运维工具—Ansible常用模块二
  • 原文地址:https://www.cnblogs.com/acgoto/p/9617551.html
Copyright © 2011-2022 走看看