传送门

简单数论暴力题。

题目简述:要求求出所有满足x2≡1mod&ThinSpace;&ThinSpace;nx^2\equiv1 \mod nx2≡1modn且0≤x&lt;n0\le x&lt;n0≤x<n的xxx


考虑到使用平方差公式变形。

(x−1)(x+1)≡0mod&ThinSpace;&ThinSpace;n(x-1)(x+1)\equiv0 \mod n(x−1)(x+1)≡0modn

即(x−1)(x+1)=kn(x-1)(x+1)=kn(x−1)(x+1)=kn

然后就可以枚举nnn大于sqrtnsqrt_nsqrtn​的约数ddd来求出可能的xxx。

由上面的式子知道d∣x−1d|x-1d∣x−1或者d∣x+1d|x+1d∣x+1因此就很好判断了。

代码:

#include<bits/stdc++.h>
#define ri register int
using namespace std;
int n,tot;
vector<int>ans,stk;
int main(){
	scanf("%d",&n);
	for(ri i=1;i*i<=n;++i)if(n%i==0)stk.push_back(n/i);
	for(ri i=stk.size()-1;~i;--i){
		int d=stk[i];
		for(ri j=d;j<=n;j+=d){
			if((j-2)%(n/d)==0)ans.push_back(j-1);
			if((j+2)%(n/d)==0)ans.push_back(j+1);
		}
	}
	sort(ans.begin(),ans.end()),tot=unique(ans.begin(),ans.end())-ans.begin()-1;
	puts("1");
	for(ri i=0;i<tot;++i)cout<<ans[i]<<'\n';
	return 0;
}

最新文章

  1. 关于《selenium2自动测试实战--基于Python语言》
  2. PHP面向对象的一些深入理解
  3. JAVA集合学习
  4. [转]分布式文件系统FastDFS架构剖析
  5. asp.net 后台 修改 javascript 变量
  6. Python:运算符
  7. MFC界面开发(QQ透明皮肤:多层算法,一键适配各种背景 )
  8. JVM线程安全
  9. python之12306自动查票
  10. 多路分支----switch语句
  11. mac终端代理
  12. UNIX口令破解机
  13. 【XSY2750】Mythological V 2-sat
  14. numpy 随机产生数字
  15. LeetCode--No.005 Longest Palindromic Substring
  16. canvas使用1
  17. 每天一个linux命令-用户之间切换
  18. Visual Studio Code 配置 gcc
  19. XShell安装
  20. 【bzoj1502】月下柠檬树

热门文章

  1. 贪吃蛇GamePanel Java实现(二)
  2. Compare Version Numbers(STRING-TYPE CONVERTION)
  3. Extract Dataset
  4. [leetcode]300. Longest Increasing Subsequence最长递增子序列
  5. Java_1简介
  6. 浅谈前端三大框架Angular、react、vue
  7. javascript 的原型与原型链的理解
  8. vue 自定义组件directives
  9. Linux ulimit
  10. 2D情况下,复数的意义代表旋转