唯一分解定理
唯一分解定理,也叫算术基本定理,指的是任何n>=2,都可以分解为n=p1*p2*p3*.....pn,其中pi为质数。
其包括两个断言:断言1:数n可以以某种方式分解成素数乘积。
断言2:仅有一种这样的因数分解。(除因数重排外)。
其可以化简为 n=p1^x1*p2^x2*p3^x3.....pn^xn。其中pi均为质数。
Description
mmoaay小侄子今年上初中,老师出了一道求约数个数的题目,比如8的约数有1,2,4,8共4个。
当数比较小的时候可以人工算,当n较大时就难了。
mmoaay嫌麻烦,现在让你编个程序来算。
Input
一行一个整数。最后以0结束。
Output
分别求出这些整数的约数个数,最后的0不用处理。
Sample Input
8 100 0
Sample Output
4 9
解题思路:这里就使用唯一分解定理将所给的整数分解 n=p1^x1*p2^x2*p3^x3.....pn^xn,约数的个数就是(x1+1)*(x2+1)(x3+1).......(xn+1)。
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int main() 5 { 6 int n,i,counts; 7 int ans; 8 while(scanf("%d",&n)!=EOF) 9 { 10 ans=1; 11 if(n==0) 12 { 13 break; 14 } 15 for(i=2; n!=1; i++) 16 { 17 counts=1; 18 while(n%i==0) 19 { 20 counts++; 21 n=n/i; 22 } 23 ans=ans*counts; 24 } 25 printf("%d\n",ans); 26 } 27 return 0; 28 }
本文作者:王陸
本文链接:https://www.cnblogs.com/wkfvawl/p/9911083.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步