LightOJ -kuangbin 数论

LightOJ数论题目小结

题目

这儿–[kuangbin]数学训练四 数论

简单题解

  • LightOJ 1007 Mathematically Hard
    因为数据样例比较多,所以进行预处理.至于欧拉函数可以用线性筛选的方法(很棒,牢记!)

  • LightOJ 1014 Ifter Party
    题意是求大于某个数的因子,一般用暴力的枚举,效率为 N ,sort之后输出就好了

  • LightOJ 1024 Eid 求1~N的最小公倍数,可以枚举1~N的素数的幂数,然后乘起来,要用到大数,本来辛辛苦苦敲好了大数然后忘了保存,一怒之下就不敲了

  • LightOJ 1028 Trailing Zeroes (I)
    求N的因子数,假设 N=aq1bq2...zqn ,那么因子数 O(N)=(1+q1)(1+q2)....(1+qn) ,如果 N 特别大的话就预处理一下素数

  • LightOJ 1035 Intelligent Factorial Factorization
    很简单的一题,直接写就好了

  • LightOJ 1045 Digits of Factorial
    有关位数的问题经常用log来处理,这题也不例外.

  • LightOJ 1067 Combinations
    这题我不会,貌似用Lucas定理什么的来做,可惜至今没看懂,于是没敲.

  • LightOJ 1077 How Many Points?
    喜闻乐见的水题,只要求GCD就好了

  • LightOJ 1007 How Many Points?
    求末尾0无非是找2和5,这个还是很简单的拉

  • LightOJ 1098 A New Function
    额,代码很短却很有启示意义的题目,如何不重复的计算,那么我们就约束一定的方法就好了,对于每个素数N,我们从 N+1 来算就不会重复了

  • LightOJ 1109 False Ordering
    又是喜闻乐见的水题,求出因子数再排个序就好了

  • LightOJ 1138 Trailing Zeroes (III)
    详细的请看这里

  • LightOJ 1163 Bank Robbery
    A=10x+y ,那么 AB=9x+y ,只要枚举 y 就好了

  • LightOJ 1197 Help Hanzo
    因为b-a很小,所以我们可以把线性筛选质数的方法运用到指定的区间上

  • LightOJ 1213 Fantasy of a Summation
    对于多重for循环里边的变量可以看做组合和排列的问题,然后这题就用快速幂就可以了

  • LightOJ 1214 Large Division
    模拟一下手工的除法就好了,额,好像要某个数论的定理什么的也可证明…

  • LightOJ 1215 Finding LCM
    如果AB已经达到L中某个质数的最高次幂,那么L就不再需要了就可以除去,不然就保留,貌似有简单的减法,直接GCD就好了,可以我不会………………..

  • LightOJ 1220 Mysterious Bacteria
    脑洞开了一下,直接枚举p,然后再回来验证是否正确…注意附属时候是不可能偶数次幂的

  • LightOJ 1234 Harmonic Number
    求调和级数的大小,这里貌似用片取法,很棒的方法

  • LightOJ 1236 Pairs Forming LCM
    这也是一道写起来相当容易却相当考验数学思维的题目,建议用唯一分解定理,最后列出表达式,求解

  • LightOJ 1245 Harmonic Number (II)
    直接暴力 N 枚举因子

  • LightOJ 1259 Goldbach`s Conjecture
    直接预处理一下,然后暴力验证就好了

  • LightOJ 1278 Sum of Consecutive Integers
    列出表达式,然后就会发先这题就是求该数的奇数因子个数就是了,可惜WA了好多次,QAQ.

总结

  • 数论的题目最重要的是数学思维,列出表达式,包括推导结果……(反正我不会)靠智商的东西

  • 欧拉函数可以用线性筛的方法做(尤其用于预处理),而对于相当大的数可以选择预处理素数

  • 求因子暂时只会用 N 的方法暴力….

  • 因子数比较简单,为 (q1+1)(q2+1)....(qn+1) ,而求因子和也比较简单 aq1+111a11aq2+121a21......aqn+1n1an1

  • 有关某个数有多少位,前多少位都可以用 log 来解决

  • for循环什么的可以看做组合问题

  • 末尾0通常是来计算2和5的个数

  • 线性筛选质数可以用到区间上边

  • 在求因数的时候遇到重复的问题可以用 N(N+1) 解决

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sigma函数是指一个数字的所有因子之和。给定一个数字n,需要求出有多少个数字的Sigma函数是偶数。\[2\] 为了解决这个问题,可以先筛选出n范围内的素数(范围在10^6即可),然后对n进行素因子分解。对于每个因子,如果它的Sigma函数中连乘的每一项都是偶数,那么整个Sigma函数就是偶数。具体实现中,可以判断每个因子的平方根是否为偶数,如果是偶数,则减去(平方根+1)/2。\[1\] 另外,还可以使用O(1)的做法来解决这个问题。根据观察,所有的完全平方数及其两倍的值都会导致Sigma函数为偶数。因此,可以直接计算n的平方根,然后减去(平方根+1)/2即可得到结果。\[3\] #### 引用[.reference_title] - *1* [Sigma Function](https://blog.csdn.net/PNAN222/article/details/50938232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【LightOJ1336】Sigma Function(数论)](https://blog.csdn.net/qq_30974369/article/details/79009498)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值