(数论1)质因数
質因數(素因數或質因子)在數論里是指能整除給定正整數的質數
質數定義為在大于1的自然數中,除了1和它本身以外不再有其他因數。
正整數的因數分解可將正整數表示為一連串的質因子相乘,質因子如重復可以用指數表示
除了1以外,兩個沒有其他共同質因子的正整數稱為 互質。因為1沒有質因子,1與任何正整數(包括1本身)都是互質//公約數只有1的兩個整數,叫做互質整數
//求一個數的質因數的個數 #include<stdio.h> #include<math.h> int main() { int n; while(scanf("%d",&n)!=EOF) { int m=n,t=0; for(int i=2;i<=sqrt(m);i++) { while(m%i==0) { m=m/i; t++; } } printf("%d",m>1?t+1:t); } } //求一個數的最大質因數 #include <iostream> using namespace std; int findBigChild(int n){int ans=1;for(int i=2;i<=n;i++){while(n%i==0){n=n/i;ans=i;}}return ans; } int main(){int a;cin>>a;int ans=findBigChild(a);cout<<ans<<endl; return 0; } //依次輸出所有數的質因數 #include<iostream> #include<cmath> using namespace std; int main(){int n,num=0,a[100],i;cin>>n;for(i=2;i<=sqrt(n);++i){while(n%i==0){n=n/i;a[num]=i;num++;}}if(num==0) cout<<num+1<<' '<<n;else {for(i=0;i<num;++i){cout<<a[i]<<' ';}} }總結
- 上一篇: Java调用虚拟键盘输入法_Androi
- 下一篇: 泰拉瑞亚服务器config修改,泰拉瑞亚