当前位置:网站首页>[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;
}
}
边栏推荐
- Windows cannot start the MySQL service (located on the local computer) error 1067 the process terminated unexpectedly
- MySQL21-用户与权限管理
- Kubernetes - problems and Solutions
- Dotnet replaces asp Net core's underlying communication is the IPC Library of named pipes
- 数数字游戏
- NPM an error NPM err code enoent NPM err syscall open
- The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
- February 13, 2022-2-climbing stairs
- Installation and use of MySQL under MySQL 19 Linux
- Install mysql5.5 and mysql8.0 under windows at the same time
猜你喜欢
随机推荐
JDBC原理
SSM整合笔记通俗易懂版
The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
CSDN问答标签技能树(二) —— 效果优化
Mysql28 database design specification
February 13, 2022 - Maximum subarray and
[untitled]
Windows下安装MongDB教程、Redis教程
Ubuntu 20.04 安装 MySQL
数数字游戏
Global and Chinese markets for aprotic solvents 2022-2028: Research Report on technology, participants, trends, market size and share
[BMZCTF-pwn] 12-csaw-ctf-2016-quals hungman
frp内网穿透那些事
@Controller, @service, @repository, @component differences
Global and Chinese markets of static transfer switches (STS) 2022-2028: Research Report on technology, participants, trends, market size and share
Leetcode 461 Hamming distance
Generate PDM file from Navicat export table
Armv8-a programming guide MMU (2)
Opencv uses freetype to display Chinese
【博主推荐】asp.net WebService 后台数据API JSON(附源码)