首页 > 其他分享 >一些模板

一些模板

时间:2023-12-20 22:11:41浏览次数:28  
标签:prime Phi ll 1000005 一些 fj top 模板

1e12找原根板子

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,prime[1000005],is_prime[1000005],cnt,qv[1000005],qn[1000005],top,g,Phi,sum,ans[1000005],mod;
void fj(ll x){
	top=0;
	for(ll i=1;prime[i]*prime[i]<=x;i++){
		if(x%prime[i]==0)qv[++top]=prime[i],qn[top]=0;
		while(x%prime[i]==0)qn[top]++,x/=prime[i];
	}
	if(x!=1)qv[++top]=x,qn[top]=1;
}
ll phi(ll x){
	ll ans=x;
	for(ll i=1;prime[i]*prime[i]<=x;i++){
		if(x%prime[i]==0)ans=ans/prime[i]*(prime[i]-1);
		while(x%prime[i]==0)x/=prime[i];
	}
	if(x!=1)ans=ans/x*(x-1);
	return ans;
}
ll ksm(ll A,ll B){
	ll Ans=1;
	while(B){
		if(B%2)Ans=Ans*A%mod;
		B/=2;
		A=A*A%mod;
	}
	return Ans;
}
bool check(ll x){
	if(ksm(x,Phi)!=1)return 0;
	for(ll i=1;i<=top;i++){
		if(ksm(x,Phi/qv[i])==1)return 0;
	}
	return 1;
}
void init(){
	for(ll i=2;i<=1e6;i++){
		if(!is_prime[i])prime[++cnt]=i;
		for(ll j=1;j<=cnt&&i*prime[j]<=1e6;j++){
			is_prime[i*prime[j]]=1;
			if(i%prime[j]==0)break;
		}
	}
}
int gcd(int a,int b){
	return b?gcd(b,a%b):a;
}
int main(){
	init();
	scanf("%lld",&n);
	mod=n;
	if(n%2==0&&n!=2&&n!=4){
		fj(n/2);
		if(top>1){
			printf("0\n");
			return 0;
		}
	}
	else if(n!=2&&n!=4){
		fj(n);
		if(top>1){
			printf("0\n");
			return 0;
		}
	}
	Phi=phi(n);
	fj(Phi);
	for(ll i=1;i<n;i++){
		if(check(i)){
			g=i;
			break;
		}
	}
	for(int i=1;i<Phi;i++){
		if(gcd(i,Phi)==1){
			ans[++sum]=ksm(g,i);
		}
	}
	printf("%d\n",sum);
	sort(ans+1,ans+1+sum);
	for(int i=1;i<=sum;i++)printf("%d ",ans[i]);
} 

标签:prime,Phi,ll,1000005,一些,fj,top,模板
From: https://www.cnblogs.com/zhuzc/p/17917715.html

相关文章

  • 一些基操
    apt-get包管理在软件与更新里面换源之后sudoapt-getupdatesudoapt-getupgradeaptitude包管理sudoapt-getinstallaptitudesudoaptitudeinstallpackage这个一般是几个包版本不适配之后,用于自动升降版本的操作。可能会产生bug,慎用。扩展根目录空间用分区助手......
  • P2197 【模板】Nim 游戏
    原题链接题解说的很详细,我来讲讲我对为什么要用异或判断的想法异或为零是先手必败状态的一个属性,我们通过属性来判断类别。代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intt;cin>>t;while(t--){intn;cin>>n;......
  • P3386 【模板】二分图最大匹配
    原题链接洛谷题解很详细,自己写了些理解在代码注释里代码#include<bits/stdc++.h>usingnamespacestd;intatch[50005]={0};intvis[50005]={0};vector<int>G[505];intweiy(intnow)//让now在他的“仓库”里按顺序找下一个能连的右点,找得到返回1,找不到返回0{vis[n......
  • 【misc】[HNCTF 2022 WEEK2]calc_jail_beginner_level4(JAIL) --沙盒逃逸,python模板注
    查看附件信息这里禁用了__import__,直接导致了help()函数和breakpoint()函数没法使用,并且还过滤了关键字符,这里考虑python模板注入,但是这里还过滤chr(),这里可以使用bytes函数payload如下:().__class__.__base__.__subclasses__()[-4].__init__.__globals__['system']('sh')......
  • VUE3学习基础之模板语法
    我的vue3学习之路总是学学停停,最开始在18年开发微信小程序,就发现小程序和vue的语法有些相似,然后就去看了vue2的文档,随后忙其它的事情就丢下了。直到22年又开始捡起来vue3,有了组合式api,语法简明很多,然后又不知道忙什么丢下。。。前段有些空时间,就把vue3的学习整理下,使用vite构建......
  • Python中配置Excel导出模板
    定义Excel列对象classExcelColumn:"""定义Excel中的列参数:name(str):列的名称。width(int|None,可选):列的宽度。默认为None。required(bool,可选):指示列是否必需。默认为False。mapping_factory(Callable......
  • 一些让生活更容易的"常识":Music, Water, Breath, Mindset
    Hello网友们!这个还是听AndrewHuberman的播客时记的笔记。关于音乐、水、呼吸和心态。这次只是记录了可以直接行动的内容,都是一些知道了就立马就能让生活变得容易的信息,背后的原理和相关的研究可以去听播客,是否知道原理对效果有很大影响的(强烈推荐,......
  • 设计模式—模板模式
    介绍代码游戏模板类定义一个游戏模板虚类Game,抽象并规范好游戏的进行流程publicabstractclassGame{abstractvoidinit();abstractvoidstartPlay();abstractvoidendPlay();//模板publicfinalvoidplay(){//初始化......
  • vue中@param 常用注释模板
    /***获取事件在列表中的位置*@paramcontext*@paramcallback*@private*/_evIndex(event,context,callback){letindex=-1;for(leti=0;i<=event.length;i++){if(event[i].context===contex&&event[i].callback===callback){......
  • Android性能优化的一些想法
    避免内存泄漏监控长期持有的引用:注意那些可能持久存在内存中的对象引用,例如静态引用、单例模式中的引用、注册的监听器等。确保在不需要时释放这些引用。Context使用:正确管理Context引用,特别是避免在生命周期长于Activity的对象中持有Activity的Context,以防Activity泄漏......