# El significado de los problemas
Dado un número entero n, encontrar el número de X, Y satisface 1 / x + 1 / y = 1 / n!
n ∈ [1,1e6]
# Explicaciones
1 #include <. Bits / STDC ++ h> 2 #define ll largo largo 3 usando espacio de nombres std; 4 const int N = 1E6 + 10 , mod = 1e9 + 7 ; 5 int n; 6 int p [N], cnt; 7 bool st [N]; 8 void get_primes ( int n) { 9 para ( int i = 2 ; i <= n; i ++ ) { 10 si (st [i]!) P [cnt ++] = i; 11 para ( int j =0 ; p [j] * i <= n; j ++ ) { 12 st [p [j] * i] = 1 ; 13 si (i% p [j] == 0 ) descanso ; 14 } 15 } 16 } 17 int main () { 18 cin >> n; 19 get_primes (n); 20 int ans = 1 ; 21 para ( int i = 0 ; i <cnt; i ++ ) { 22 int suma = 0 ; 23 int primos =Pi]; 24 para ( int j = n; j; j / = números primos) { 25 suma + = j / números primos; 26 } 27 ans = (ll) ( 2 * suma + 1 ) mod% * ans% mod; 28 } 29 tribunal << ans << endl; 30 de retorno 0 ; 31 }