当前位置:网站首页>[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;
}
}
边栏推荐
- Mysql23 storage engine
- Idea import / export settings file
- [recommended by bloggers] asp Net WebService background data API JSON (with source code)
- MySQL的一些随笔记录
- [C language foundation] 04 judgment and circulation
- Timestamp with implicit default value is deprecated error in MySQL 5.6
- CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)
- [recommended by bloggers] C WinForm regularly sends email (with source code)
- Some problems in the development of unity3d upgraded 2020 VR
- Mysql 其他主机无法连接本地数据库
猜你喜欢
Generate PDM file from Navicat export table
Csdn-nlp: difficulty level classification of blog posts based on skill tree and weak supervised learning (I)
[recommended by bloggers] C WinForm regularly sends email (with source code)
Breadth first search rotten orange
一键提取pdf中的表格
A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
Mysql24 index data structure
neo4j安装教程
CSDN blog summary (I) -- a simple first edition implementation
解决:log4j:WARN Please initialize the log4j system properly.
随机推荐
Esp8266 at+cipstart= "", "", 8080 error closed ultimate solution
Mysql28 database design specification
01项目需求分析 (点餐系统)
报错解决 —— io.UnsupportedOperation: can‘t do nonzero end-relative seeks
机器学习--人口普查数据分析
自动机器学习框架介绍与使用(flaml、h2o)
windows无法启动MYSQL服务(位于本地计算机)错误1067进程意外终止
Timestamp with implicit default value is deprecated error in MySQL 5.6
Some problems in the development of unity3d upgraded 2020 VR
Mysql22 logical architecture
API learning of OpenGL (2002) smooth flat of glsl
Some notes of MySQL
解决扫描不到xml、yml、properties文件配置
Why is MySQL still slow to query when indexing is used?
Postman Interface Association
csdn-Markdown编辑器
TCP/IP协议(UDP)
虚拟机Ping通主机,主机Ping不通虚拟机
【博主推荐】asp.net WebService 后台数据API JSON(附源码)
CSDN Q & a tag skill tree (V) -- cloud native skill tree