博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1406: [AHOI2007]密码箱
阅读量:6695 次
发布时间:2019-06-25

本文共 1342 字,大约阅读时间需要 4 分钟。

1406: [AHOI2007]密码箱

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1591  Solved: 944
[][][]

Description

在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示。经过艰苦的破译,小可可发现,这些图标表示一个数以及这个数与密码的关系。假设这个数是n,密码为x,那么可以得到如下表述: 密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1。 小可可知道满足上述条件的x可能不止一个,所以一定要把所有满足条件的x计算出来,密码肯定就在其中。计算的过程是很艰苦的,你能否编写一个程序来帮助小可可呢?(题中x,n均为正整数)

Input

输入文件只有一行,且只有一个数字n(1<=n<=2,000,000,000)。

Output

你的程序需要找到所有满足前面所描述条件的x,如果不存在这样的x,你的程序只需输出一行“None”(引号不输出),否则请按照从小到大的顺序输出这些x,每行一个数。

Sample Input

12

Sample Output

1
5
7
11

 

/*    找出来所有的 x (0
#define LL long long#define MAXN 1234567using namespace std;LL n;vector
v;inline void init(){ v.clear();}int main(){ init(); scanf("%lld",&n); if(n==1){ puts("None"); return 0; } for(LL i=1;i*i<=n;i++){ if(n%i==0){ LL a=i; LL b=n/i; for(LL j=0;j<=n;j+=b){ if((j+2)%a==0&&j+2
=0) v.push_back(j-1); } } } sort(v.begin(),v.end()); if((int)v.size()==0){ return 0; }else{ printf("%lld\n",v[0]); for(int i=1;i<(int)v.size();i++){ if(v[i]!=v[i-1]) printf("%lld\n",v[i]); } } return 0;}

 

转载于:https://www.cnblogs.com/wuwangchuxin0924/p/7858033.html

你可能感兴趣的文章
medusa 2.0的简单使用
查看>>
照片美妆---人脸老化
查看>>
zabbix3.2升级3.4报错Database error
查看>>
在C#中使用官方驱动操作MongoDB
查看>>
XML 编辑器 介绍
查看>>
Thread thread2 = new Thread()
查看>>
Hadoop 概述
查看>>
perl 工具小脚本
查看>>
SQL存储过程调试
查看>>
[转载]手机软件开发之我见
查看>>
UNITY实现FLASH中的setTimeout
查看>>
C#文件和文件文件夹按时间、名称排序-顺序与倒序
查看>>
TMPFS详解
查看>>
《异构信息网络挖掘: 原理和方法》—— 第2章 基于排名的聚类 2.1 概述
查看>>
[案例]网易云音乐的个性化推荐
查看>>
《QTP自动化测试权威指南(第二版)》—第2章2.3节搜索标签(Search Tab)
查看>>
数据结构
查看>>
王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
查看>>
【hibernate框架】一对一双向外键关联(Annotation实现)
查看>>
Android热修复简单总结
查看>>