Número (aprox factorial de cereza

# 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 }

 

Supongo que te gusta

Origin www.cnblogs.com/hhyx/p/12629185.html
Recomendado
Clasificación