分解质因数
-
核心思想:试除法(从小到大枚举所有数)
-
#include<iostream> #include<algorithm> using namespace std; void div(int n){ for(int i=2;i<=n/i;i++) { if(n%i == 0) //找到最小质数i { int s=0; while(n%i == 0) { n/=i; s++; //记录指数 } cout<<i<<" "<<s<<endl; //输出第一个因数 } } if(n>1) cout<<n<<" "<<1<<endl; //不是1 就输出第二个因数 puts(" "); } int main(){ int n; cin>>n; while(n--){ int x; cin>>x; div(x); } return 0; }
-