CF1033D.Divisors

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given nn integers a1,a2,,ana_1, a_2, \ldots, a_n . Each of aia_i has between 33 and 55 divisors. Consider a=aia = \prod a_i — the product of all input integers. Find the number of divisors of aa . As this number may be very large, print it modulo prime number 998244353998244353 .

输入格式

The first line contains a single integer nn ( 1n5001 \leq n \leq 500 ) — the number of numbers.

Each of the next nn lines contains an integer aia_i ( 1ai210181 \leq a_i \leq 2\cdot 10^{18} ). It is guaranteed that the number of divisors of each aia_i is between 33 and 55 .

输出格式

Print a single integer dd — the number of divisors of the product a1a2ana_1 \cdot a_2 \cdot \dots \cdot a_n modulo 998244353998244353 .

Hacks input

For hacks, the input needs to be provided in a special format.

The first line contains an integer nn ( 1n5001 \leq n \leq 500 ) — the number of numbers.

Each of the next nn lines contains a prime factorization of aia_i . The line contains an integer kik_i ( 2ki42 \leq k_i \leq 4 ) — the number of prime factors of aia_i and kik_i integers pi,jp_{i,j} ( 2pi,j210182 \leq p_{i,j} \leq 2 \cdot 10^{18} ) where pi,jp_{i,j} is the jj -th prime factor of aia_i .

Before supplying the input to the contestant, ai=pi,ja_i = \prod p_{i,j} are calculated. Note that each pi,jp_{i,j} must be prime, each computed aia_i must satisfy ai21018a_i \leq 2\cdot10^{18} and must have between 33 and 55 divisors. The contestant will be given only aia_i , and not its prime factorization.

For example, you need to use this test to get the first sample:

<br></br>3<br></br>2 3 3<br></br>2 3 5<br></br>2 11 13<br></br>Interaction

From the technical side, this problem is interactive. Therefore, do not forget to output end of line and flush the output. Also, do not read more than you need. To flush the output, use:

  • fflush(stdout) or cout.flush() in C++;
  • System.out.flush() in Java;
  • flush(output) in Pascal;
  • stdout.flush() in Python;
  • see documentation for other languages.

输入输出样例

  • 输入#1

    3
    9
    15
    143

    输出#1

    32
  • 输入#2

    1
    7400840699802997
    

    输出#2

    4
  • 输入#3

    8 
    4606061759128693
    4606066102679989
    4606069767552943
    4606063116488033
    4606063930903637
    4606064745319241
    4606063930904021
    4606065559735517

    输出#3

    1920
  • 输入#4

    3
    4
    8
    16
    

    输出#4

    10
    

说明/提示

In the first case, a=19305a = 19305 . Its divisors are 1,3,5,9,11,13,15,27,33,39,45,55,65,99,117,135,143,165,195,297,351,429,495,585,715,1287,1485,1755,2145,3861,6435,193051, 3, 5, 9, 11, 13, 15, 27, 33, 39, 45, 55, 65, 99, 117, 135, 143, 165, 195, 297, 351, 429, 495, 585, 715, 1287, 1485, 1755, 2145, 3861, 6435, 19305 — a total of 3232 .

In the second case, aa has four divisors: 11 , 8602812186028121 , 8602815786028157 , and $7400840699802997 $ .

In the third case a=202600445671925364698739061629083877981962069703140268516570564888699375209477214045102253766023072401557491054453690213483547a = 202600445671925364698739061629083877981962069703140268516570564888699 375209477214045102253766023072401557491054453690213483547 .

In the fourth case, a=512=29a=512=2^9 , so answer equals to 1010 .

首页