This commit is contained in:
Zengtudor 2024-11-14 13:50:09 +08:00
parent 45b9ef50e3
commit 02a4aabd9e

View File

@ -1,4 +1,6 @@
#include <algorithm>
#include <cstdint>
#include <cstring>
#include <iostream>
using ll = int64_t;
@ -6,33 +8,55 @@ using ll = int64_t;
auto &ci = std::cin;
auto &co = std::cout;
const ll mn = 1e6+5;
ll n;
ll *a = new ll[mn], *sa = new ll[mn];
const ll mxn = 1e6+5;
ll *a{new ll[mxn]}, *fcts{new ll[mxn]}, *mnfct{new ll[mxn]};
auto ispm = new bool[mxn];
ll lb(ll n){
return n&(-n);
}
int main(){
ll n;
ci>>n;
for(ll i{1};i<=n;i++){
ll mxa{};
for(ll i{0};i<n;i++){
ci>>a[i];
mxa = std::max(mxa, a[i]);
}
for(ll i{1};i<(1<<(n));i++){
ll now{i};
ll san{};
for(ll j{0};j<=n;j++){
if((1<<j)&i){
sa[++san]=a[j+1];
std::fill(ispm, ispm+mxa+1, true);
ispm[1]=false;
for(ll i{1};i<=mxa;i++)mnfct[i]=i;
for(ll i{2};i<=mxa;i++){
if(ispm[i]){
for(ll j{i+i};j<=mxa;j+=i){
if(ispm[j]){
ispm[j]=false;
mnfct[j]=i;
}
}
}
// for(ll i{1};i<=san;i++){
// co<<sa[i]<<' ';
// }
// co<<'\n';
}
}
// for(ll i{1};i<=mxa;i++)co<<mnfct[i]<<' ';
// co<<'\n';
for(ll i{1};i<(1<<(n));i++){
// std::fill(fcts, fcts+n, 0);
memset(fcts, 0, sizeof(ll)*mxa);
for(ll j{0};j<n;j++){
if((1<<j)&i){
ll now = a[j];
while(now!=1){
// co<<nv(now)<<'\n';
fcts[mnfct[now]]++;
now/=mnfct[now];
}
}
}
}
// for(ll i{1};i<=mxa;i++)co<<fcts[i]<<' ';
// co<<'\n';
}