首页 > 其他分享 >关于数论

关于数论

时间:2024-03-25 16:44:53浏览次数:25  
标签:prime phi return gcd 数论 pri int 关于

由于博主比较蒻
尚在学习
所以先鸽亿会

欧拉筛

Elaina's code
int n,phi[N],prime[N],cnt;
bool pri[N];

void Phi(){
	mst(pri,1);
	phi[1]=1;
	for(int i=2;i<=n;i++){
		if(pri[i]){
			prime[++cnt]=i;
			phi[i]=i-1;
		}
		for(int j=1;j<=cnt;j++){
			int k=i*prime[j];
			if(k>n){
				break;
			}
			pri[k]=0;
			if(i%prime[j]==0){
				phi[k]=prime[j]*phi[i];
				break;
			}else{
				phi[k]=(prime[j]-1)*phi[i];
			}
		}
	}
}

欧几里得

点击查看代码
// 递归形式
int gcd(int x, int y) {
    return(y == 0 ? x : gcd(y, x%y));
}

// 非递归形式
int gcd(int x, int y) {
    int r=x%y;
    while(r){
        x=y;
        y=r;
        r=x%y;
    }
    return y;
}

//懒狗形式
__gcd();

扩展欧几里得(exgcd)

Elaina's code
int exgcd(int a,int b,int &x,int &y){
	if(!b){
		x=1;
		y=0;
		return a;
	}
	int res=exgcd(b,a%b,x,y);
	int t=x;
	x=y;
	y=t-a/b*y;
	return res;
}

标签:prime,phi,return,gcd,数论,pri,int,关于
From: https://www.cnblogs.com/Elaina-0/p/18094757

相关文章

  • Windows System Assessment Tool(WinSAT)是Windows操作系统中的一个工具,用于评估和测量
    您可以使用winsat命令来运行性能评分测试程序,也就是WindowsExperienceIndex(Windows体验指数)测试。这个测试程序能够评估您计算机的性能,并为各个硬件组件打分,最终得出一个综合的基准分数。WindowsSystemAssessmentTool(WinSAT)最早出现在WindowsVista操作系统中。它是由......
  • 关于浏览器resize的一些问题
    谷歌浏览器(当前版本是:版本92.0.4515.159(正式版本)(64位),目前最新版也一样有该问题)添加了resize监听时,在缩小窗口时,如果宽度和高度都发生了变化,就会触发两次,而放大时,不论是否宽度高度都改变,都只会触发一次。而如果在缩小时只调整了宽度或者高度中的一个,则只会触发一次。其他浏......
  • C# 关于图片转ICO的代码整理(无损,不需要第三方类库)
    概述(Overview)感觉网上文章整理的不全,我这边做个专栏,专门做这个事情吧,节省大家搜索、筛选、整理的时间精力。有用可以点个赞。引用本文章请注明出处,谢谢。(Ifeelthattheonlinearticlesarenotcomplete,soIwillmakeacolumnheretodothisthing,soastosa......
  • 关于RDK X3(旭日X3派)的VPS不能输出300x300照片的临时解决办法参考
    探索工具使用JupyterNotebook逐句运行Python代码,并且可以通过matplotlib模块将nv12格式的图像直接在开发机的浏览器上显示。**如何为RDKX3安装JupyterNotebook:**https://developer.horizon.cc/forumDetail/188481611833243692**如何使用matplotlib将nv12的图像显示出......
  • 关于软件功能的思考--学习过程的胡思乱想
    小白一枚,最近在学MySQL和docker。为什么会思考这个问题呢?一来是还没找到工作有点闲,二来主感叹日常接触的软件有点无聊(可能是圈子太小。。。)。诱因是我问了AI一个问题:现代软件的功能有哪些?回答如下:1.数据处理和管理:软件可以用于存储、组织、检索和分析数据。2.用户界面:提供友......
  • 关于《随笔》这个栏目
    最近感觉时间过的很快,不知不觉就毕业一年多了,不知不觉工作也半年多了,一直想着做一个自己的博客网站,拖着拖着就拖到了今天...但是还好行动了起来,这里会记录自己工作上成长的过程,也会记录很多心路成长历程,同时我也会时常回顾一下自己写的东西,温故而知新嘛///关于《随笔》这个栏目/......
  • 关于unity的学习-第一天
    首先是关于unity的下载,直接去官网。。。下hub版本,然后安装,再安装这个 选他默认的就好,然后开始创建新的项目 这是选3d 这个里面可以对创建的文件进行设置,指preferrnce 里面可以对扩展进行修改 此处选择vs编辑器果然出现问题了 vs无法下载 这是可能的原因我......
  • 关于window AD域服务文件共享
    1.在vm里面创建两台windows的机器 win2012 和 win2010  2.配置两台机器的IP 测试两台机器的连通性3.将win12作为服务器  win10作为客户端  在win12服务管理器中安装ActiveDirectory域服务 安装完成后会自动重启  4.在win12上面创建XXX.com的......
  • 关于AD域服务和文件共享设置
    1.创建两台虚拟机win12(服务器)win10(客户机)2登录两台虚拟机设置win12为dns服务器,并且设置两台虚拟机在同一网段,然后测试连通性 3.在win12虚拟机上打开下载AD域服务,然后设置新域(自己姓名加学号),然后重启保存    4.把win10虚拟机加入自己创建的域里面,然后重启保存......
  • 数论分块
    数论分块part1数论分块是什么一道例题引入uvaH(n)题目大意是给定一个n,求\(\sum^{n}_{i=1}\lfloor\frac{n}{i}\rfloor\)如果不能用\(O(n)\)的时间复杂度来算,能用什么办法?数论分块!!!在一个特定的区间内,\(\lfloor\frac{n}{i}\rfloor\)算出的数字是一样的。如下图颜色相同部分......