update
This commit is contained in:
parent
45b9ef50e3
commit
02a4aabd9e
@ -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';
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user