2603:Brave balloonists

keyword

約数 C++

概要

10000以下の整数が10個与えられる。その積の約数の個数をmod 10で求める問題。
それぞれの整数を素因数分解するだけ。

int main(){
    int ans = 1;
    primeTable(10000);
    vector<int> fs(10001,0);
    for(int i=0; i<10; i++){
        int a = readint();
        if(a>1){
            for(;table[a];a/=table[a])
                fs[table[a]]++;
            fs[a]++;
        }
    }

    for(int i=0; i<=10000; i++)
        ans = (ans*(fs[i]+1))%10;

    printf("%d\n",ans);
    return 0;
}