因为题目是要因式分解,所以根据一个合数进行质因数分解有唯一式子的性质,先对该数质因数分解
#include <bits/stdc++.h>
using namespace std;
int main(){
long long N=2021041820210418;
for(long long i=2;i<=N;i++){
if(N%i==0){//能被当前质数整除
while(N%i==0){
cout<<i<<" ";
N=N/i;
}
}
else
continue;
}
}
ps:从质数2开始遍历i的时候,根据性质,N%i==0的i一定是质数,不会出现i是合数的情况(因为i如果是合数的话,对i质因数分解,会出现比i小的质数,但是i是从小到大遍历的,比i小的质数已经除完了)
得到分解式之后就是组合数学了,N=abc,除了3,别的质数只出现了一次,所以先放出现过一次的数,方案数:35,再放3,方案数:1+3*2+3=10。所以最终方案书35*10=2430。