Sum

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

给你一个数N,使得在1~N之间能够找到x使得x满足gcd( x ,  N  ) >= M,

求解gcd(x,N)的和

输入
多组测试数据

每行输出两个数N,M(N,M不超int)

输出
输出sum
样例输入
5 3
样例输出
5

这道题是一道关于欧拉函数的题目,但是由于时限的原因,使得这道题的算法必须尽可能的简化(我就是不断的TLE,渣渣啊)。咱们先把数学式子推导出来!假如gcd(x, N)=d,那么得到gcd(x/d, N/d)=1。所以。但是,我们不能直接就从M开始一直遍历到N,为什么呢?因为我已经TLE了!!!所以需要优化。这样想,gcd(x, N)的所有值一定能分成两组,一组是不超过sqrt(N)的值,另一组是大于sqrt(N)的值。所以只要从1遍历到sqrt(N),将那些在M和sqrt(N)之间的项加到Sum里,那么大于sqrt(N)的那些项怎么办呢?其实在遍历时,假如d是n的一个因子,你们n/d也是n的一个因子(排除d*d=n的情形)。所以在遍历是通过(n/i)*phi(i)就把那些大于sqrt(N)的项加进来了。但是又要注意,n/i >= M,否则就把那些gcd小于M的项加进来了!!!

附上代码:

#include <stdio.h>
#include <math.h>long long phi(long long n)
{long long i,sum=n,temp=n;for(i=2;i*i<=temp;i++){if(n%i==0){sum=sum/i*(i-1);while(n%i==0)n/=i;}}if(n>1)sum=sum/n*(n-1);return sum;
}int main()
{long long m,n;while((scanf("%lld %lld",&n,&m))!=EOF){long long sum=0,i;for(i=1;i<=(long long)sqrt(n);i++){if(n%i==0){if(i>=m)sum+=i*phi(n/i);if(i*i!=n&&n/i>=m)sum+=(n/i)*phi(i);}}printf("%lld\n",sum);}return 0;
}


NYOJ 998 解题报告相关推荐

  1. 程序设计算法竞赛高级——练习1解题报告

    程序设计算法竞赛高级--练习1解题报告 1001 寒冰王座 Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的 ...

  2. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  3. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  4. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

  5. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  8. 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. PMP-【第1章 引论】-2020-12-07(18页-24页)
  2. 009 自动打怪功能的设计和实现
  3. JS怎样捕获浏览器关闭时间弹出自定义对话框
  4. 【❤️算法系列之二叉树的实现(包含前序、中序、后序遍历以及节点的查找和删除)❤️】
  5. Windows——Windows恢复环境(Windows RE)
  6. VTK:定向包围圆柱体用法实战
  7. react加水印_给网页增加水印的方法,react
  8. 漫画:为什么下载电影进度总是卡在 99% 就不动了?
  9. 多么漂亮的重载构造方法呀!爱上.net
  10. js获取当前日期加上30天之后的日期
  11. 蒙特卡洛模拟 matlab实例,蒙特卡洛模拟的简单例子
  12. hp 磁带机安装配置
  13. Sass Module 介绍
  14. 笔记本双显卡Ubantu16.04 Nvidia驱动安装指导
  15. GSM网络识别参数-移动国家号(MCC)|移动网号(MNC)|位置区码(LAC)|小区识别(CI/cellid)...
  16. 用node.js实现简单的web服务器
  17. 内农大计算机学院宿舍,小薇逛农大宿舍,你想看哪栋?
  18. Android NFC开发概述
  19. JS面向对象三大特性
  20. Python绘制指数加权平均线

热门文章

  1. 高手最爱的5大沟通技巧,管下属、谈客户都能用得上
  2. 梦想的脚步---C语言的学习与成长
  3. qemu 信号线程化
  4. smt生产线关键流程介绍
  5. java滚动字幕的实现的实训_实现滚动字幕
  6. 在mysql中删除数据后,添加数据,id值依然从删除的位置开始增加,问题详解。
  7. lucky-canvas抽奖插件-大转盘-九宫格-老虎机
  8. (莱昂氏unix源代码分析导读-47) exec
  9. RStudio中R notebook的使用
  10. UUess网络电视2007,UUESE免费下载,最新版UUESS官方免费下载 - uuess.org.cn