NYOJ 998 解题报告
Sum
- 描述
-
给你一个数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解题报告 1001 寒冰王座 Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的 ...
- uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)
线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报 分类: ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(十三)中国剩余定理(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(四)生成函数(ACM/ OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
最新文章
- PMP-【第1章 引论】-2020-12-07(18页-24页)
- 009 自动打怪功能的设计和实现
- JS怎样捕获浏览器关闭时间弹出自定义对话框
- 【❤️算法系列之二叉树的实现(包含前序、中序、后序遍历以及节点的查找和删除)❤️】
- Windows——Windows恢复环境(Windows RE)
- VTK:定向包围圆柱体用法实战
- react加水印_给网页增加水印的方法,react
- 漫画:为什么下载电影进度总是卡在 99% 就不动了?
- 多么漂亮的重载构造方法呀!爱上.net
- js获取当前日期加上30天之后的日期
- 蒙特卡洛模拟 matlab实例,蒙特卡洛模拟的简单例子
- hp 磁带机安装配置
- Sass Module 介绍
- 笔记本双显卡Ubantu16.04 Nvidia驱动安装指导
- GSM网络识别参数-移动国家号(MCC)|移动网号(MNC)|位置区码(LAC)|小区识别(CI/cellid)...
- 用node.js实现简单的web服务器
- 内农大计算机学院宿舍,小薇逛农大宿舍,你想看哪栋?
- Android NFC开发概述
- JS面向对象三大特性
- Python绘制指数加权平均线