当前位置:网站首页>[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;
}
}边栏推荐
- Dotnet replaces asp Net core's underlying communication is the IPC Library of named pipes
- C语言标准的发展
- Django运行报错:Error loading MySQLdb module解决方法
- Did you forget to register or load this tag 报错解决方法
- MySQL completely uninstalled (windows, MAC, Linux)
- [recommended by bloggers] background management system of SSM framework (with source code)
- MySQL21-用户与权限管理
- 虚拟机Ping通主机,主机Ping不通虚拟机
- Global and Chinese market of wafer processing robots 2022-2028: Research Report on technology, participants, trends, market size and share
- JDBC原理
猜你喜欢

A trip to Macao - > see the world from a non line city to Macao

Installation and use of MySQL under MySQL 19 Linux

Classes in C #

API learning of OpenGL (2003) gl_ TEXTURE_ WRAP_ S GL_ TEXTURE_ WRAP_ T

windows下同时安装mysql5.5和mysql8.0

csdn-Markdown编辑器

Swagger, Yapi interface management service_ SE

Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)

Mysql26 use of performance analysis tools

LeetCode #461 汉明距离
随机推荐
Basic use of redis
The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
Other new features of mysql18-mysql8
Mysql26 use of performance analysis tools
Idea import / export settings file
MySQL19-Linux下MySQL的安装与使用
Generate PDM file from Navicat export table
【博主推荐】C# Winform定时发送邮箱(附源码)
@Controller, @service, @repository, @component differences
CSDN问答标签技能树(五) —— 云原生技能树
Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)
图片上色项目 —— Deoldify
Some notes of MySQL
Principes JDBC
Why is MySQL still slow to query when indexing is used?
February 13, 2022-2-climbing stairs
MySQL flush operation
La table d'exportation Navicat génère un fichier PDM
JDBC principle
[recommended by bloggers] C # generate a good-looking QR code (with source code)