/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 15ms 9.141 MiB
#2 Accepted 16ms 9.027 MiB
#3 Accepted 18ms 9.152 MiB
#4 Accepted 43ms 9.148 MiB
#5 Accepted 56ms 10.895 MiB
#6 Accepted 27ms 9.141 MiB
#7 Accepted 42ms 9.594 MiB
#8 Accepted 26ms 9.156 MiB
#9 Accepted 44ms 9.648 MiB
#10 Accepted 25ms 9.098 MiB
#11 Accepted 62ms 9.148 MiB

Code

/*
 *   Copyright (c) 2024 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
using namespace std;
using ll=long long;

bool notprime[1000006];
vector<ll>lowestprime(1000006);
void seivelp()
{
    lowestprime[1]=1;
    for(int i=2;i<=1000000;i++)
    {
        if(notprime[i]) continue;
        lowestprime[i]=i;
        for(int j=i+i;j<=1000000;j+=i)
        {
            if(lowestprime[j]==0) lowestprime[j]=i;
            notprime[j]=true;
        }
    }
}

void primefactor(ll num,map<ll,ll>&m)
{
    while(lowestprime[num]!=1)
    {
        m[lowestprime[num]]++;
        num /= lowestprime[num];
    }
}

void solve()
{
    ll n,a; cin>>n;
    map<ll,ll>m;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        primefactor(a,m);
    }
    ll ans=1,mod=1e9+7;
    for(auto e:m)
    {
        ans *= (e.second+1);
        ans %=mod;
    }
    cout<<ans<<endl;
}
int main()
{
    ios::sync_with_stdio(false); cin.tie(nullptr);
    seivelp();
    solve();
}

Information

Submit By
Type
Submission
Problem
P1060 Divisor
Language
C++20 (G++ 13.2.0)
Submit At
2024-06-09 13:52:09
Judged At
2024-06-09 13:52:09
Judged By
Score
100
Total Time
62ms
Peak Memory
10.895 MiB