算术基本定理(唯一分解定理)
一句话:
任何大于1的自然数,都可以唯一分解成有限个质数的乘积
一、求一个数有几个因子。比如求9有3个因子,就是1、3、9, 原因是1*9=9 3*3=9
这种方法一般都会超时
C语言的代码如下:
//求一个数有几个因子
#include<stdio.h>
#include<math.h>
int num(int n)
{
if(n==1) return 1;
int count=2;
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
{
if(i*i==n&&n/i==i)//如果两因子相同,则加1
count++;
else count+=2;
}
}
return count;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",num(abs(n)));//以防是负数,带上abs()
return 0;
}
二、求一个数的所有因子(不包括自身)的和
这种方法一般都会超时
//求一个数的所有因子(不包括自身)的和
#include<stdio.h>
int sum(int x)
{
int count=0;
for(int i=1; i<=x/2; i++)//循环判断条件是 <=x/2 而