-
Notifications
You must be signed in to change notification settings - Fork 1
/
N_1339_Primos_Circulares_1.java
82 lines (68 loc) · 1.97 KB
/
N_1339_Primos_Circulares_1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
Problem A: Primos Circulares 1
Time Limit: 1 Sec Memory Limit: 128 MB
Enviar: 27 Resuelto: 19
[Enviar][Estado][Foro]
Descripción
Definimos los números primos circulares aquellos que luego de rotar un numero siguen siendo primos. Por ejemplo
las rotaciones del numero primo 17 son: 17 y 71 ambos son primos asi decimos que el 17 es un numero primo circular. El numero 101 tiene tres rotaciones, si rotamos una vez tenemos 110 , la segunda rotación es 011, como vemos 110 no es primo por lo que el 101 no es un primo circular.
Entrada
La entrada es una lista de numeros cada uno en una linea y termina con un "-1". Todos los números son menores a 10,000.
Salida
Para cada número en la entrada en la salida escriba SI si el numero es circular y NO en otro caso.
Ejemplo Entrada
2
3
337
101
-1
Ejemplo Salida
SI
SI
SI
NO
*/
package juez.patito;
import java.util.Scanner;
/**
*
* @author Alejandro
*/
public class N_1339_Primos_Circulares_1 {
public static void main(String[] arg)
{
Scanner in = new Scanner(System.in);
int n=0;
n=in.nextInt();
while(n!=-1)
{
int po=(int)Math.log10(n);
po=(int)Math.pow(10, po);
int cont=0;
int aux = n;
for (int i = 0; i < n+"".length() ; i++) {
for (int j = 2; j < aux/2; j++) {
if(aux%j==0)
{
cont++;
break;
}
}
if(cont==1)break;
int var=aux%10;
aux=aux/10;
aux=(var*po)+aux;
// System.out.println("numero "+aux);
}
if(cont==1)
{
System.out.println("NO");
}
else
{
System.out.println("SI");
}
n=in.nextInt();
}
}
}