首页 > 其他分享 >数论的各种板子2.0 (约数和 和 约数个数和)

数论的各种板子2.0 (约数和 和 约数个数和)

时间:2024-04-03 19:33:50浏览次数:20  
标签:约数 include int ll long 板子 2.0 mod

​
#include<bits/stdc++.h>//求约数和 
#include<map>
using namespace std;
const int mod=1e9+10;
typedef long long ll;

int main(){
	int n;
	cin>>n;
	
	unordered_map<int,int>primes;
	
	while(n--){
		int x;
		cin>>x;
		
		for(int i=2;i<=x/i;i++)//分解约数的板子 
			while(x%i==0){
				x/=i;
				primes[i]++;
			}
			
		if(x>1) primes[x]++;
	}
		
	ll res=1;
		
	for(auto prime:primes){//思路:p是底数,a是指数 
		int p=prime.first,a=prime.second;//底数各种不同指数的相加,再都相乘起来就可以构成不同的因数 
		ll t=1;					//例如: (1+2+3)*(4+5)就可以构成4,5,8,10,12,15(语言叙述能力太差) 
		while(a--) t=(t*p+1)%mod;//分解出各个底数的相乘的结果就为所有因数的和 
		res=res*t%mod;
	}
	cout<<res; 
	return 0;
} 

​

#include<bits/stdc++.h>//求约数个数和 
#include<map>
using namespace std;
typedef long long ll;
const int mod=1e9+7;

int main(){
	int n;
	cin>>n;
	
	unordered_map<int,int>primes;//用unordered_map更快 
	while(n--){
		int x;
		cin>>x;
		
		for(int i=2;i<=x/i;++i){//分解质因数的板子 
			while(x%i==0){
				x/=i;
				primes[i]++;//指数增加 
			}
		}
	}
	
	ll res=1;
	for(auto prime:primes){
		res=res*(prime.second+1)%mod;//思路:有个数它可以由p1^n1 * p2^n2 * p3^n3构成 
	}								//那么其因数可以为p1^(n1-x1) * p2^(n2-x2) * p3^(n3-x3) <其中x为比n小于等的数> 
									//那么其约数个数和就可以表示为(n1+1) * (n2+1) * (n3+1) <0也在其中> 
	cout<<res<<endl;
	return 0;
}

标签:约数,include,int,ll,long,板子,2.0,mod
From: https://blog.csdn.net/2302_80928106/article/details/137355306

相关文章

  • 环境搭建 ubuntu22.04+gtx1070+cuda12.0+cudnn8.8.0+TensorRT8.6
    构建基础             cuda12.0的.deb包会强制安装所依赖的nvidia-525.60.13版本驱动,但是对于ubuntu22.04来说,linux内核为6.5.0,其与该nvidia驱动不兼容,会报错,所以要先安装所支持的驱动,然后再使用runfile进行安装cuda12.0。cuda与驱动版本对应可查如下官网:1.C......
  • Android12.0 系统关于安兔兔显示信息的修改
    1.前言在12.0的系统rom定制化开发中,在一些产品开发中,对于安兔兔等第三方检测工具,检测不出某些版本的内核信息等,显示0GB等问题的相关修改,由于不知道安兔兔的检测方式,所以就需要来修改关于文本上的一些信息了2.系统关于安兔兔显示信息的修改的核心类frameworks/base/core/jav......
  • 数论的各种板子1.0
    仅为了记录所学的知识.boolis_prime(intx){//求是否为素数 if(x<2)returnfalse; for(inti=2;i<=x/i;++i){ if(x%i==0)returnfalse; } returntrue;}voiddivide(intx){//分解质因子 for(inti=2;i<=x/i;++i){ ints=0; while(x%i==0)x/=i,s++; cou......
  • 约数
    frommathimportsqrtfromcollectionsimportCounter#①试除法求约数x=int(input())ans=[]foriinrange(1,int(sqrt(x))+1):ifx%i==0:ans.append(i)print(ans)#②求多个数乘积的约数个数n=int(input())a=[*map(int,input().s......
  • Install astah-professional (9.2.0.0248cd.0) to Ubuntu 23.10
    Unpackingastah-professional(9.2.0.0248cd.0)...Settingupastah-professional(9.2.0.0248cd.0)...PleaseinstallAdoptiumTemurin8u402orlater.HoweverJDK9orlatercannotbeaccepted.Andthentrythefollowingcommandforrunningastah*profession......
  • 状压dp板子(cf div4 #937)
    #include<bits/stdc++.h>usingnamespacestd;intn;vector<int>v[20];stringa[20],b[20];booldp[500010][20];voiddfs(ints,intnow){dp[s][now]=true;for(autonxt:v[now]){if(s&(1<<nxt))continue;......
  • kmp板子
    书上讲的感觉不好理解,不如算法竞赛上分析的题目链接:https://www.luogu.com.cn/problem/P3375贴板子:#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>#include<i......
  • Ubuntu下本机向minicom板子传文件操作
    1.配置minicomlingd@ubuntu:~$  sudominicom-s    出现这样的配置界面:       +-----[configuration]------+       |Filenamesandpaths   |       |Filetransferprotocols |       |Serialport......
  • 红队笔记10:pWnOS2.0打靶流程-whatweb指纹识别-searchsploit搜索漏洞利用getshell(vulnh
    目录开头:1.主机发现和端口扫描2.80端口- whatweb指纹识别-searchsploit搜索漏洞并利用whatweb指纹识别:searchsploit搜索历史漏洞:什么是perl?SimplePHPblog登录成功-图片上传getshell3.提权-敏感文件泄露密码泄露尝试登录 4.总结:开头:学习的视频是哔哩哔哩红......
  • 海康Ehome2.0与5.0设备接入EasyCVR视频汇聚平台时的配置区别
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......