题目要求符合等式的数,我们首先要做的就是分析这个数:

对于这个等式,我们可能什么都看不出来,左边很难化简的样子,所以我们就要想到通过变化怎么样把右边化成和左边形式差不多的样子。结合组合数我们想到二项式定理,展开得到

左边等于右边的话我们可以得到g(n)=2*n,因为n本身为自身的因子,那么n的小于自身的因子之和为自身说明n为完全数。
所以问题转换为如何求完全数。
由数论知识得任何一个完全数都可以写成 2p-1 *(2p-1)的形式,其中(2p-1)为素数(也叫做梅森素数)
梅森素数的条件为p为素数。
由以上(我靠比赛我到哪去找这些知识点),我们可以找到所有的完全数(其实也没有几个)

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<map>
#include<queue>
#include<set>
#include<vector>using namespace std;typedef long long ll;
const int MAXN=1e5+5;ll mult(ll x,ll y,ll  p)
{long double d=1;d=d*x/p*y; return ((x*y-((ll)d)*p)%p+p)%p;
}ll quick_pow(ll a,ll b,ll p)
{ll ret=1; a%=p;while(b){if(b&1) ret=mult(ret,a,p);a=mult(a,a,p); b>>=1;}return ret;
}bool Miller_Rabin(ll n)
{const ll times=8;const ll prime[8]={2,3,5,7,11,13,17,61};if(n<2) return false; if(n==2) return true;for(int i=0;i<times;i++)if(n==prime[i]) return true; else if(!(n%prime[i])) return false;ll x=n-1; while(!(x&1)) x>>=1;for(int i=0;i<times;i++){ll a=prime[i]; ll now=quick_pow(a,x,n); ll last;if(x==n-1){if(now!=1) return false;}else{bool flag=false;while(x!=n-1){last=now;  now=mult(now,now,n);if(now==1){if(last==n-1 || last==1) flag=true; break;}x<<=1;}if(!flag) return false;}}return true;
}ll quick_pow(ll a,ll b)
{ll ret=1;while(b){if(b&1) ret*=a;a*=a; b>>=1;}return ret;
}const int prime[11]={2,3,5,7,11,13,17,19,23,29,31};int main()
{/*for(int i=0;i<11;i++){ll t=quick_pow(2,prime[i]);ll a=t-1;//printf("a=%lld t=%lld \n",a,t);if(Miller_Rabin(a)){t/=2; printf("%lld\n",t*a);}}//找到的所有的完全数62849681283355033685898690561374386913282305843008139952128
*/char cmd[5]; ll a,b;const ll ans[8]={6,28,496,8128,33550336,8589869056,137438691328,2305843008139952128};while(~scanf("%s",cmd)){if(cmd[0]=='A'){scanf("%lld%lld",&a,&b);if(b<a) swap(a,b);int cnt=upper_bound(ans,ans+8,b)-lower_bound(ans,ans+8,a);printf("%d\n",cnt);}else{scanf("%lld",&a);printf("%d\n",upper_bound(ans,ans+8,a)-lower_bound(ans,ans+8,a));}}return 0;
}

HDU2683——欧拉完全数相关推荐

  1. 歪写数学史(分析的化身——欧拉)

    即使在完全失聪的最后几年,贝多芬(Beethoven)依然创作了弦乐四重奏,钢琴奏鸣曲第30,31,32号,庄严弥撒和第九交响曲.对于一个没有听觉的人来说,音乐是什么?我无法回答,但是我想应该是超越了 ...

  2. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  3. BZOJ 2818 Gcd 线性欧拉筛(Eratosthenes银幕)

    标题效果:定整N(N <= 1e7),乞讨1<=x,y<=N和Gcd(x,y)素数的数(x,y)有多少.. 思考:推,. 建立gcd(x,y) = p,然后,x / p与y / p互 ...

  4. hdu 1286( 欧拉函数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...

  5. 欧拉、欧几里得、笛卡尔都没能解决的数学问题,他探索了新的方案

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 欧拉.欧几里得.笛卡尔.尼科马修斯都没能解决的千年数学问题,还有破解的可能吗? 还真有可能. 最近,一位名为佩斯·尼尔森 (Pace Nie ...

  6. 费马定理中值定理_数论-欧拉函数、欧拉定理

    欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...

  7. poj2154(Polya+欧拉函数优化模版)

    #include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...

  8. 欧拉筛 筛法求素数 及其例题 时间复杂度O(n)

    埃式筛法尽管不错,但是确实做了许多无用功,某个数可能会被重复的筛好几次,欧拉筛解决了这个方法,下面为代码: 注意理解if(i%prim[j]==0) break; 大佬讲的不错的博客,我就不做复读机了 ...

  9. 欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常

    解题思路: 首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子:首先你得知道斐波那契的通项式子: F(n)=15[(1+52)n−(1−52)n]F(n) = {1\over\sqrt5} ...

最新文章

  1. mysql 协议说明_MySQL认证协议_MySQL
  2. RSA加密算法破解及原理
  3. Laravel5.5的异常捕获和处理
  4. RXJava by Example--转
  5. pymysql的安装
  6. JDK14性能管理工具:Jconsole详解
  7. Codeforces1045I
  8. AE调整形状图层大小插件 BorderPatrol for mac
  9. xor和路径(codevs 2412)
  10. php定位符,行定位符、单词定界符实例用法(正则表达式字符集1)
  11. SqlServer查询表名的备注(查询表名描述 MS_Description)
  12. 5-7Linux 起源,与Unix的联系,与Windows的不同
  13. 毕业设计,MD2模型动画展示
  14. GJB 150A军用设备环境试验方法低气压(高度)试验测试报告
  15. 蛋糕网店/蛋糕店管理系统/蛋糕销售系统
  16. 排列组合公式及排列组合算法
  17. 网页 flash swf 无法调用 摄像头 问题解决
  18. java deprecated 注释_@Deprecated注解的使用
  19. Oracle商务智能系统(Oracle Business Intelligence System 11i )
  20. tpshop index.php,第三讲、TPshop linux安装

热门文章

  1. mybatis一对一联表查询的两种常见方式
  2. 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】...
  3. 004-JQuery属性
  4. while和for循环
  5. 图像二维离散傅里叶变换、幅度谱、相位谱
  6. 三、 将DataTable 转换为List
  7. rds基于什么开发_IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?终于有人讲明白了...
  8. php如何表格中的变为超链接,php中将网址转换为超链接的函数
  9. unix/linux系统中文件分为哪些类型?,到底该如何理解 Unix/Linux 的文件系统?看这篇就知道了...
  10. java方法执行的时间_计算Java中任意一个方法的执行时间的工具类