...待更新,有错误请及时指出.
约数
vector<ll>d; // d用来存约数结果
// 求n的约数
for(ll i=1;i*i<=n;i++)
{
if(n%i==0)
{
d.push_back(i);
if(n/i!=i)d.push_back(n/i);
//其中n/i!=i的作用,举个例子:100的约数其中有10,100/10=10
//只需存一个10即可,故需要用if判断一下
}
}
for(auto x:d)
cout<<x<<endl;
最大公约数
#欧几里得算法
int gcd(int a,int b)
{
return b ?gcd(b,a%b) : a;
}
最小公倍数
int d = gcd(a,b); // d为a,b的最大公约数
int res = (a*b)/d; // 最小公倍数等于两数之乘积除两数最大公约数
求质因数分解
void divide(int n)
{
int m=0;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
p[++m]=i;
c[m]=0;
while(n%i==0)n/=i,c[m]++;
}
}
if(n>1)p[++m]=n,c[m]=1;
for(int i=1;i<=m;i++)
cout<<p[i]<<"^"<<c[i]<<endl;
}
约数
- \(N={\prod _{i=1}^m}p_{i}^{c_i}\) 其中\(c_i\)都是正整数,\(p_i\)都是质数。
- N的正约数的个数为 \(\prod_{i=1}^m (c{_i}+1)\)
- N的正约数的和为 \(\prod_{i=1}^m(\sum _{j=0}^{c_i})(p_i)^j)\)
LaTeX
\(c_x\) 下标
\(c^x\) 上标
浙公网安备 33010602011771号