21/03/2020 Benelux algoritmo de programación Concurso 2019

J题: Jazz it Up!

Sujeto al efecto:

Dado el número de factores de un número libre de cuadrados n (es decir, factores no son el mismo número primo) (3 <= n <10 ^ 5), de modo que a encontrar un m (2 <= m <n), tal que n * condiciones libres de m en línea con el cuadrado del número de factores.

ideas:

1. Encontrar un número primo n no es un factor.

2. milagro violencia.

La resolución de problemas Código:

1 #include <cstdio>
 2 #include <iostream>
 3 #include <algoritmo>
 4 #include <cmath>
 5 #include < string >
 6 #include <cstring>
 7 #include <mapa>
 8  usando  espacio de nombres std;
9  const  largo  largo maxN = 1e5 + 7 ;
10 typedef largo  largo ll;
11  / *     找出一个不是n因子的质数       * / 
12  bool prime_if [maxN];
13  int prime [maxN], x;
14 void oulasai ( int n)
 15  {
 16      para ( int i = 2 ; i <= n; i ++ )
 17      {
 18          si (! prime_if [i])
 19              Primer [x ++] = i;
20          para ( int j = 0 ; j <x; j ++ )
 21          {
 22              si (i * prime [j]> n)
 23                  descanso ;
24              prime_if [i * prime [j]] = verdadero ;
25              Si (% prime i [j] == 0)
 26                 descanso ;
27          }
 28      }
 29  }
 30  
31  int main ()
 32  {
 33      int n, i;
34      cin >> n;
35      oulasai (n);
36      para (i = 0 ; i <x; i ++ )
 37      {
 38          si (n% prime [i])
 39              descanso ;
40      }
 41      tribunal << prime [i] << endl;
42      de retorno  0 ;
43 }

 

1 #include <cstdio>
 2 #include <iostream>
 3 #include <algoritmo>
 4 #include <cmath>
 5 #include < string >
 6 #include <cstring>
 7 #include <mapa>
 8  usando  espacio de nombres std;
9  const  largo  largo maxN = 1e5 + 7 ;
10 typedef largo  largo ll;
11  
12  / *      暴力出奇迹      * / 
13  int main ()
 14  {
 15      intn, findnum;
16      cin >> n;
17      para ( int i = 2 ; i <n; i ++ )
 18      {
 19          findnum = 1 ;
20          para ( int j = 2 ; j <sqrt (n * i); j ++ )
 21          {
 22              si ((n * i)% (j * j) == 0 )
 23              {
 24                  findnum = 0 ;
25                  descanso ;
26              }
 27          }
 28         si (findnum)
 29          {
 30              tribunal << i << endl;
31              descanso ;
32          }
 33  
34      }
 35  
36      de retorno  0 ;
37 }

 

Supongo que te gusta

Origin www.cnblogs.com/emhhbw/p/12561774.html
Recomendado
Clasificación