当前位置:网站首页>[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;
}
}
边栏推荐
- C语言标准的发展
- MySQL21-用戶與權限管理
- Copie maître - esclave MySQL, séparation lecture - écriture
- Basic use of redis
- Installation and use of MySQL under MySQL 19 Linux
- CSDN问答标签技能树(一) —— 基本框架的构建
- [recommended by bloggers] asp Net WebService background data API JSON (with source code)
- ++Implementation of I and i++
- Mysql21 user and permission management
- [BMZCTF-pwn] 12-csaw-ctf-2016-quals hungman
猜你喜欢
MySQL主从复制、读写分离
windows下同时安装mysql5.5和mysql8.0
基于apache-jena的知识问答
Opencv uses freetype to display Chinese
Postman environment variable settings
【博主推荐】SSM框架的后台管理系统(附源码)
[recommended by bloggers] asp Net WebService background data API JSON (with source code)
Esp8266 at+cipstart= "", "", 8080 error closed ultimate solution
Valentine's Day is coming, are you still worried about eating dog food? Teach you to make a confession wall hand in hand. Express your love to the person you want
[Li Kou 387] the first unique character in the string
随机推荐
02-项目实战之后台员工信息管理
【博主推荐】C#MVC列表实现增删改查导入导出曲线功能(附源码)
neo4j安装教程
[C language foundation] 04 judgment and circulation
MySQL23-存儲引擎
解决扫描不到xml、yml、properties文件配置
CSDN question and answer module Title Recommendation task (I) -- Construction of basic framework
Mysql23 storage engine
Global and Chinese markets for aprotic solvents 2022-2028: Research Report on technology, participants, trends, market size and share
虚拟机Ping通主机,主机Ping不通虚拟机
JDBC原理
Swagger, Yapi interface management service_ SE
Navicat 导出表生成PDM文件
【博主推荐】C#生成好看的二维码(附源码)
Swagger、Yapi接口管理服务_SE
The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
CSDN markdown editor
安全测试涉及的测试对象
[recommended by bloggers] C # generate a good-looking QR code (with source code)
The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine