10月20号 蒟蒻的流水账

08:36:24

昨天的第二题居然是题目描述自己出问题了!结果大家都只有5分(那个很奇怪的速度式子果然有问题呢)

             

后面应该是Cb-Ca来着。

09:26:28

写了一题简单数学题, (2004年 普及组的最后一题) 很巧的是这道题和今年初赛阅读程序的最后一题是一样的

不想写昨天的第三题啊,题解看起来就很烦呢

10:28:30

在第三题挣扎了一会儿,决定放弃,去写了试炼场 简单数学问题 的第二题,明明是一道 普及- 的题目,愣是提交了五次才过。

11:12:19

又写了一题,高精度调了好一会儿,因为数组开小了,它溢出后直接跳出一堆负数(下次写高精要注意数组范围 

这道题只有 普及+/提高- 但我学会了原来C++ 可以直接使用 log10() (lg) 和 log() (ln)

      

11:38:14

这题好水码量超小。

     

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define For(i,a,b) for(register int i=a;i<=b;++i)
using namespace std;
int sum=0,n;
int main(){
    cin>>n;
    For(i,1,n)sum+=n/i;
    cout<<sum<<endl;
    return 0;
}

不过具体怎么单独求一个数字的约数个数呢?可以用质因数分解呀 哈哈。

对于一个大于1的整数都可以这样分解

 

那么一个数的约数个数

  

下面的简证摘自百度百科

  由约数定义可知p1^a1的约数有:p1^0, p1^1, p1^2......p1^a1 ,共(a1+1)个;同理p2^a2的约数有(a2+1)     个......pk^ak的约数有   (ak+1)个。
   故根据乘法原理:n的约数的个数就是(a1+1)(a2+1)(a3+1)…(ak+1)。

猜你喜欢

转载自www.cnblogs.com/HLAUV/p/9821124.html