Problem p02642 - Generation 1

Orig Description

Score : 400 points
Problem StatementGiven is a number sequence A of length N.
Find the number of integers i \left(1 \leq i \leq N\right) with the following property:
For every integer j \left(1 \leq j \leq N\right) such that i \neq j , A_j does not divide A_i.
Constraints
All values in input are integers.
1 \leq N \leq 2 \times 10^5
1 \leq A_i \leq 10^6
InputInput is given from Standard Input in the following format:
N
A_1 A_2 \cdots A_N
OutputPrint the answer.
Sample Input 15
24 11 8 3 16
Sample Output 13
The integers with the property are 2, 3, and 4.
Sample Input 24
5 5 5 5
Sample Output 20
Note that there can be multiple equal numbers.
Sample Input 310
33 18 45 28 8 19 89 86 2 4
Sample Output 35

Extracted Specification

An integer N (1 ≤ N ≤ 2 × 10^5), representing some quantity or size.
A list of integers A of size N, where each integer is between 1 and 10^6.

### Example Input:

```
5
24 11 8 3 16
```

### Function Signature:
Write a function f(N, A) that takes in the input. 
def f(N: int, A: List[int]): 
    ''' 
    N: an integer 
    A: a list of integers
    '''

Test Case Generator

Sure, I can help you create a test case generator for this problem. The generator will produce random values for \(N\) and the sequence \(A\) within the specified constraints. Here's the implementation:

```python
import random

def tcgen():
    N = random.randint(1, 2 * 10**5)
    A = [random.randint(1, 10**6) for _ in range(N)]
    
    return N, A

# Example usage
N, A = tcgen()
print(N)
print(' '.join(map(str, A)))
```

This function `tcgen` will generate a random test case each time it is called. The output format will be consistent with the input format specified in the problem statement:

1. An integer \(N\) (1 ≤ \(N\) ≤ 200,000), representing the length of the sequence.
2. A list \(A\) of size \(N\), where each integer \(A[i]\) (1 ≤ \(A[i]\) ≤ 1,000,000) represents an element of the sequence.

You can use this generator to create various test cases to thoroughly test your solution for the given problem.

Extract Arguments

def extract_arguments(fh):
    N = int(fh.readline().strip())
    A = list(map(int, fh.readline().strip().split()))
    return N, A