当前位置:网站首页>[number theory] divisor
[number theory] divisor
2022-07-06 11:04:00 【Nathan Qian】
Try division to find the divisor
subject

explain
- Because divisors appear in pairs , So you just need to i*i<=x
- prevent x It's a total square , One more number is recorded . Therefore, special deposit is required x/i Conditions
Code segment
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int>get_divisors(int x)
{
vector<int>ans;
for(int i=1;i*i<=x;i++)
{
if(x%i==0)
{
ans.push_back(i);
if(i!=x/i)ans.push_back(x/i);
}
}
sort(ans.begin(),ans.end());
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int x;cin>>x;
vector<int>ans=get_divisors(x);
for(auto x:ans)cout<<x<<' ';
cout<<endl;
}
return 0;
}Find the number of divisors
subject

explain
- According to the above theorem , We should factorize each number , Then find the sum of prime factors
- be aware 1 Although it is a divisor , But the combination result is only 1 Kind of , So it's not in the scope
- about ans The multiplication modulus of cannot be written as ans*=x%mod, It can only be written as ans=ans*x%mod
Code segment
#include<iostream>
#include<unordered_map>
const int mod=1e9+7;
using namespace std;
unordered_map<int,int>primes;
int main()
{
int n;cin>>n;
while(n--)
{
int x;cin>>x;
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
while(x%i==0)
{
primes[i]++;
x/=i;
}
}
}
if(x>1)primes[x]++;
}
long long ans=1;
for(auto it=primes.begin();it!=primes.end();it++)
{
ans=ans*(1+it->second)%mod;
}
cout<<ans%mod<<endl;
}The sum of the approximations
subject

explain

- Here, please a1^α1 Sum of divisors of , It is obvious that there can be algebraic theorems
- Multiplication principle , It can be understood as the sum of each power combination of each prime number
- Select a number in each bracket and multiply it to exactly equal one of the divisors
- This does not repeat the choice of accumulation , That is, the sum of approximations
- When finding the sum of divisors of prime numbers , For the accumulation of proportional series
- The simple formula is
int t( frequency ) ,x( base number ),sum( and )
while(t--)
{
sum=sum*x+1;
}
Code segment
#include<iostream>
#include<unordered_map>
const int mod=1e9+7;
using namespace std;
int main()
{
int t;cin>>t;
unordered_map<int,int>primes;
while(t--)
{
int x;cin>>x;
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
while(x%i==0)
{
primes[i]++;
x/=i;
}
}
}
if(x>1)primes[x]++;
}
long long sum=1;
for(auto it=primes.begin();it !=primes.end();it++)
{
long long tmp=1;
int t=it->second;
while(t--)
{
tmp=(tmp*it->first+1)%mod;
}
sum=sum*tmp%mod;
// Although it can guarantee tmp No more than mod, But if sum*tmp It is likely to be greater than mod
}
cout<<sum<<endl;
}greatest common divisor
subject

explain
- Mathematical proof of Euclidean algorithm
- 【 number theory 】 Euclid algorithm _nathanqian123 The blog of -CSDN Blog
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int t;cin>>t;
while(t--)
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
}
}边栏推荐
- 引入了junit为什么还是用不了@Test注解
- CSDN markdown editor
- MySQL20-MySQL的数据目录
- Deoldify项目问题——OMP:Error#15:Initializing libiomp5md.dll,but found libiomp5md.dll already initialized.
- MySQL主从复制、读写分离
- FRP intranet penetration
- [leectode 2022.2.13] maximum number of "balloons"
- A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
- windows下同时安装mysql5.5和mysql8.0
- Redis的基础使用
猜你喜欢

CSDN blog summary (I) -- a simple first edition implementation

CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)

neo4j安装教程

Postman environment variable settings

【博主推荐】C# Winform定时发送邮箱(附源码)

【博主推荐】C#生成好看的二维码(附源码)

Postman Interface Association

Navicat 导出表生成PDM文件

CSDN question and answer module Title Recommendation task (II) -- effect optimization

API learning of OpenGL (2002) smooth flat of glsl
随机推荐
PyCharm中无法调用numpy,报错ModuleNotFoundError: No module named ‘numpy‘
A trip to Macao - > see the world from a non line city to Macao
Global and Chinese market of thermal mixers 2022-2028: Research Report on technology, participants, trends, market size and share
frp内网穿透那些事
Mysql21 user and permission management
CSDN blog summary (I) -- a simple first edition implementation
Global and Chinese market of wafer processing robots 2022-2028: Research Report on technology, participants, trends, market size and share
February 13, 2022-2-climbing stairs
Solution: log4j:warn please initialize the log4j system properly
Mysql21 - gestion des utilisateurs et des droits
A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
MySQL19-Linux下MySQL的安装与使用
February 13, 2022 - Maximum subarray and
软件测试-面试题分享
CSDN Q & a tag skill tree (V) -- cloud native skill tree
记某公司面试算法题:查找一个有序数组某个数字出现的次数
[recommended by bloggers] C WinForm regularly sends email (with source code)
IDEA 导入导出 settings 设置文件
@Controller, @service, @repository, @component differences
TCP/IP协议(UDP)