题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1176


题意:z = (x/2)取整后 + y + xy,x,y都是大于0的整数。即:




x,y取不同的数,z可能有多种表示方式,也可能一种都没有,比如3,15就无法用任何x,y来表示。

现在将所有无法表示的数排个序,组成一个序列S,给出一个整数n,你来求S[n]的值(n <= 40)。比如n = 1,

S[n] = 1,n = 2,S[n] = 3,由于S[n]可能很大,只输出mod 1000000007的结果即可。



分析:根据表达式,我们分x为奇数和偶数讨论:


(1)x为奇数,那么,得到:


(2)x为偶数,那么,得到:


很明显,我们知道一个事实:所有的奇数中除素数外都可以表示为两个大于1的奇数的乘积;而所有的偶数则能表示为两个

偶数的乘积或一个奇数和一个偶数的乘积。


我们从上面的(1),(2)两种情况来看,我们只需要求出同时不满足上面两个条件的z就可以了。


先来看条件(1),可以知道没有偶数乘偶数的情况,也就是说偶数乘偶数得到的2z+2是没有解的。


那么,这种数只能为的形式,即有:,同时要求2z+1为素数。也就是为素数时的的值就是我们要求的。而形如的素数叫做梅森素数。目前已发现48个梅森素数,可以查出对应的m值。


#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
using namespace std;
const int MOD = 1000000007;
typedef long long LL;
LL p[] ={0,2,3,5,7,13,17,19,31,61,89,107,127,521,607,1279,2203,2281,3217,4253,4423,9689,9941,11213,19937,21701,23209,44497,86243,110503,132049,216091,756839,859433,1257787,1398269,2976221,3021377,6972593,13466917,20996011,24036583,25964951};
LL quick_mod(LL a,LL b,LL m)
{
LL ans = 1;
a %= m;
while(b)
{
if(b&1)
{
ans = ans * a % m;
b--;
}
b >>= 1;
a = a * a % m;
}
return ans;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
LL ans = quick_mod(2,p[n]-1,MOD);
ans = (ans - 1 + MOD) % MOD;
printf("%I64d\n",ans);
}
return 0;
}


51nod---无法表示的数相关推荐

  1. 2023年你最值得了解的信息技术-AI篇(一)

    列表 85 - 其他 辽宁省 大连优联智能 自动化生产线提供商 未融资 大连优联智能是一家自动化生产线提供商,集规划设计.制造安装.系统集成.视觉检测及AI数据智能分析于一体,可为汽车车身及发动机制造 ...

  2. 51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya‘s Game。

    废话不多说,先上题目. 51nod Codeforces 两个其实是一个意思,看51nod题目就讲的很清楚了,题意不再赘述. 直接讲我的分析过程:刚开始拿到手有点蒙蔽,看起来很难,然后......然后 ...

  3. 51nod 1847 奇怪的数学题(数论/min25筛/杜教筛/斯特林数)

    51nod 1847 奇怪的数学题 求解∑i=1n∑j=1nsgcd(i,j),sgcd\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j),sgcd∑i=1n​∑j=1n​sgcd(i ...

  4. BZOJ 1974 [Sdoi2010]auction 代码拍卖会 | 51nod 1261 上升数

    题目: http://www.lydsy.com/JudgeOnline/problem.php?id=1974 http://www.51nod.com/onlineJudge/questionCo ...

  5. 51nod 1105:第K大的数

    1105 第K大的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 数组A和数组B,里面都有n个整数.数组C共有n^2个整数,分别是A[0] * ...

  6. 51NOD 1001 数组中和等于K的数对

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  7. 51nod 1717 好数 (水题)

    题目: 看起来很复杂,其实就是有多少个素因子就翻转多少次. 然后考虑到只有平方数有奇数个素因子. 一次过,上代码把: #include <iostream> #include <al ...

  8. 只包含因子2 3 5的数(51nod 思维 打表)

    K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如:n = ...

  9. 【51nod - 1174 】区间中最大的数(RMQ问题,ST表,模板)

    题干: 给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少. 例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为 ...

  10. 【51Nod - 1010 】只包含因子2 3 5的数 (打表,有坑越界)

    题干: K的因子中只包含2 3 5.满足条件的前10个数是:2,3,4,5,6,8,9,10,12,15. 所有这样的K组成了一个序列S,现在给出一个数n,求S中 >= 给定数的最小的数. 例如 ...

最新文章

  1. 服务器日志显示乱码,CentosOS 6.5 服务器 控制台输出中文乱码,日志打印中文也乱码...
  2. linux计划任务怎么做,做linux计划任务的步骤
  3. linux系统怎么用wifi,【教程】Wii安装运行可用WIFI的Linux系统全攻略
  4. AOSP Ubuntu命令
  5. 历届试题 错误票据(multiset)
  6. 如何使用 TRACERT 解决 Windows 中的 TCP/IP 问题
  7. excel转成csv格式的默认分隔符
  8. html列表变成三个一行,HTML列表仅限第一行缩进
  9. flask request传参
  10. Latex中插入超链接/网址
  11. Debian/Ubuntu - 解决Root用户不能远程连接服务器的问题
  12. 使用visual studio2015 社区版开发office
  13. 微信小程序 - 自定义组件中类似页面 onShow 的页面显示就触发的生命周期钩子函数(页面回退时更新数据常用, 例如回退页面更新子组件数据, 回退更新子组件中 data 内容)
  14. 首款国产8K 50P小型化广播级摄像机惊喜亮相冬季冰雪体育盛会
  15. UE4-植被系统使用
  16. Python笔记 · 鸭子类型 / Duck Typing
  17. MySql 循环执行语句,循环执行update,详细介绍【游标嵌套】
  18. 只转不评:112家IT公司薪水一览表
  19. 利用线程池来处理Excel导出功能
  20. python直接下载图片到内存

热门文章

  1. Spring Cloud 版本支持
  2. Java连接Redis-Jedis简介
  3. 返回结果数据实体类R
  4. 哨兵机制服务器环境准备
  5. 开始使用Spring Cloud实战微服务
  6. 设计模式之_Strategy_02
  7. SpringCloud 配置安全验证、服务消费端处理、无状态 Session 配置、定义公共安全配置程序类
  8. js与java的区别,JavaScript与Java的区别是什么呀?
  9. 斐波那契数列python递归 0、1、1、2、3_python实现斐波那契数列的多种方式
  10. 23种设计模式之《单例模式》