Sunteți pe pagina 1din 11

PROBLEMAS

Problema 13
Dado un nmero decir si es primo.
package programacion2;
import javax.swing.JOptionPane;
public class ejemplo13 {
public static void main(String[] args) {

String a = JOptionPane.showInputDialog( null, "Ingrese el numero",


JOptionPane.QUESTION_MESSAGE);
int num=Integer.parseInt(a);
int d=0;
int i=1;
while(i<=num){
if (num%i==0){
d=d+1;}
i++;}
if(d==2){
JOptionPane.showMessageDialog(null, "es numero primo", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else{
JOptionPane.showMessageDialog(null, "No es numero primo", "Mensaje",
JOptionPane.
INFORMATION_MESSAGE);}
}}
Problema 14
Escribir los 50 primeros nmeros primos.
package programacion2;
import javax.swing.JOptionPane;
public class ejemplo14 {
public static void main(String[] args){

int c=0;
int i=1;
int d=i;
while(d<=50){
c=0;
for(i=1;i<=d;i++){
if (d%i==0)
c++;}
if(c<=2){
JOptionPane.showMessageDialog(null, "son: "+d, "Los primeros 50 numeros primos",
JOptionPane.INFORMATION_MESSAGE);}
d++;
}}}

Problema 15
Dados dos nmeros enteros, realizar el algoritmo que calcule el cociente y el
resto (sin utilizar las operaciones de cociente y resto en Java, esto es, / y %)
package programacion2;
import javax.swing.JOptionPane;
public class ejemplo2 {
public static void main(String[] args) {

String a = JOptionPane.showInputDialog( null, "Ingrese el Dividendo", JOptionPane.


QUESTION_MESSAGE);
int D=Integer.parseInt(a);
String b = JOptionPane.showInputDialog( null, "Ingrese el Divisor", JOptionPane.
QUESTION_MESSAGE);
int d=Integer.parseInt(b);
int c=0,r=0;
while(D>=d){
D=D-d;
c++;}
r=D;
JOptionPane.showMessageDialog(null, "El cociente es: "+c+" \nEl residuo es: "+r,
"Resultdo", JOptionPane.INFORMATION_MESSAGE);
}}
Problema 16
Leer una lista de nmeros por teclado (hasta que se lea el 0) y calcular la suma y
la media entera de todos ello-
import javax.swing.JOptionPane;
public class ejemplo4 {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Programa para calcular la suma y la media
entera de todos ellos", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
int s=0,c=1,q,d=-1;
while (c==1){
String p = JOptionPane.showInputDialog( null, "Ingrese el numero",
JOptionPane.QUESTION_MESSAGE);
int b=Integer.parseInt(p);
s=s+b;
d++;
if (b==0){
c=2;
}}
q=s/d;
JOptionPane.showMessageDialog(null,"la sumatoria es "+s+"\nLa media entera es:
"+q,"",JOptionPane.PLAIN_MESSAGE);
}}

17.- Disear un algoritmo que permita al usuario la introduccin de 50 nmeros


enteros y encuentre el mximo y el mnimo.

import javax.swing.JOptionPane;
public class ejemplo2 {

public static void main(String[] args) {


int menor,mayor;
JOptionPane.showMessageDialog(null, "Ingrese 50 numeros y el programa
determinara el mayor y el menor", "Bienvenido",
JOptionPane.INFORMATION_MESSAGE);

menor = 99999999;
mayor = -999;
for (int a=1 ; a<=50; a++){
String p = JOptionPane.showInputDialog( null,(a)+".-"+"Ingrese el numero",
JOptionPane.QUESTION_MESSAGE);
int i=Integer.parseInt(p);
if(i>mayor){
mayor=i;}
if(i<menor){
menor=i;
}}
JOptionPane.showMessageDialog(null, "El mayor es: "+mayor+"\nEl menor es:
"+menor, "Mensaje", JOptionPane.INFORMATION_MESSAGE);
}}

Problema 18
Modificar el algoritmo anterior para que adems de calcular el mximo y el
mnimo calcule tambin el valor medio (entero).
package problemas;
import javax.swing.JOptionPane;
public class main {

public static void main(String[] args) {


float n,i=1,ma,me,a;
float s, prom;
n=Integer.parseInt(JOptionPane.showInputDialog("escribe el numero: "));
ma=n;
me=n;
a=n;
do{ n=Integer.parseInt(JOptionPane.showInputDialog("escribe el numero: "));

a=a+n;
if(n<me)
{me=n;}
else {if(n>ma)
ma=n;}
i++;}
while(i<50);
prom=a/i;
{
JOptionPane.showMessageDialog(null,"el mayor es: "+ma,"mensaje",JOptionPane.
INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"el menor es: "+me,"mensaje",JOptionPane.
INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"el promedio es:
"+prom,"mensaje",JOptionPane.
INFORMATION_MESSAGE);
}}}
Problema 19
Leer un nmero n por teclado y escribir el sumatorio de todos los nmeros entre
1 y n.
package programacion2;
import javax.swing.JOptionPane;
public class ejemplo19 {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "PROGRAMA QUE CALCULA LA
SUMATORIA DE TODOS LOS NUMEROS ENTRE 1 AL N TERMINO", "Bienvenido",
JOptionPane.INFORMATION_MESSAGE);
int p=0,s;
String a = JOptionPane.showInputDialog( null, "Ingrese el valor de n ",
JOptionPane.QUESTION_MESSAGE);
int n=Integer.parseInt(a);
for(int i=1;i<=n;i++){
p=p+1;}
s=((1+p)*n)/2;
JOptionPane.showMessageDialog(null, " La sumatoria es : "+s, "Resultado",
JOptionPane.INFORMATION_MESSAGE);
}}

Problema 20
Se considera la siguiente serie definida por:
a1= 0, a2 =1, ..., an=3 * an-1 + 2 * an-2 con n>=3
Los primeros trminos de la serie son: 0, 1, 3, 11, 39, ...
Se desea obtener el valor y rango del primer trmino de esta serie superior o
igual a 1.000
import javax.swing.JOptionPane;
public class asdq {
public static void main(String[] args) {
int a=0,i;
int numero1[]=new int[44];
int [] numero2=new int[44] ;
numero1[1]=1;
numero1[0]=0;
for(i=3;i<=10;i++)
{ numero1[i-1]=3*numero1[i-2]+2*numero1[i-3];
numero2[i-3]=numero1[i-1];}
for(a=0;a<=10;a++)
{
if(numero2 [a]<=1000)
{}
else{
JOptionPane.showMessageDialog(null,"el termino es :"+(a+1));
JOptionPane.showMessageDialog(null,"el numero es :"+numero2[a]);
break;
}}
}}

Problema 21
Leer un nmero y decir si es capica. En una primera versin supondremos que
como mximo es un nmero de 6 cifras (entre 0 y 999.999)
import javax.swing.JOptionPane;
public class ejemplo21 {
public static void main(String[] args) {

JOptionPane.showMessageDialog(null, "PROGRAMA PARA SABER SI UN NUMERO


ES CAPICUA O NO CAPICUA", "Mensaje",
JOptionPane.INFORMATION_MESSAGE);
String n = JOptionPane.showInputDialog( null, "Ingrese un numero (como max. de 6
cifras)", JOptionPane.QUESTION_MESSAGE);
int m=Integer.parseInt(n);
int a,b,c,r,z,d,e,f;

if(m>0 & m<=9)


JOptionPane.showMessageDialog(null, "es capicua", "Mensaje",JOptionPane.
INFORMATION_MESSAGE);
else if(m>=10 & m<=99){
a=m/10;
b=m%10;
r=b+10*a;
if(r==m){
JOptionPane.showMessageDialog(null, "es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else
JOptionPane.showMessageDialog(null, "no es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else if(m>=100 & m<=999){
a=m/100;
z=m%100;
b=z/10;
c=z%10;
r=100*c+10*b+a;
if(r==m){
JOptionPane.showMessageDialog(null, "es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else
JOptionPane.showMessageDialog(null, "no es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else if(m>=1000 & m<=9999){
a=m/1000;
z=m%1000;
b=z/100;
z=z%100;
c=z/10;
d=z%10;
r=1000*d+100*c+10*b+a;
if(r==m){
JOptionPane.showMessageDialog(null, "es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else
JOptionPane.showMessageDialog(null, "no es capicua", "Mensaje", JOptionPane
.INFORMATION_MESSAGE);}
else if(m>=10000 & m<=99999){
a=m/10000;
z=m%10000;
b=z/1000;
z=z%1000;
c=z/100;
z=z%100;
d=z/10;
e=z%10;
r=10000*e+1000*d+100*c+10*b+a;
if(r==m){
JOptionPane.showMessageDialog(null, "es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else
JOptionPane.showMessageDialog(null, "no es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else if(m>=100000 & m<=999999){
a=m/100000;
z=m%100000;
b=z/10000;
z=z%10000;
c=z/1000;
z=z%1000;
d=z/100;
z=z%100;
e=z/10;
f=z%10;
r=100000*f+10000*e+1000*d+100*c+10*b+a;
if(r==m){
JOptionPane.showMessageDialog(null, "es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
else
JOptionPane.showMessageDialog(null, "no es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);}
}}
Problema 22
Leer un nmero y decir si es capica. No supondremos que es como mximo de
6 cifras sino cualquier nmero. NOTA: no es exactamente cierto ya que se lee un
nmero de tipo long y tiene un lmite.
import javax.swing.JOptionPane;
public class ejemplo22 {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "PROGRAMA PARA SABER SI EL NUMERO
ES CAPICUA O NO CAPICUA (para n numeros)", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);
String p = JOptionPane.showInputDialog( null, "Ingrese el numero",
JOptionPane.QUESTION_MESSAGE);
int n=Integer.parseInt(p);
int r,s=0,k;
k=n;
while(n!=0){
r=n%10;
s=s*10+r;
n=n/10;}
if(s==k)
JOptionPane.showMessageDialog(null, "Es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null, "No es capicua", "Mensaje", JOptionPane.
INFORMATION_MESSAGE);
}}
Problema 23
Realiza un programa para que dos personas puedan jugar al Master Mind.
Primeramente el ordenador pedir una combinacin secreta que consistir en 4
nmeros y que teclear una de las personas. Despus, la otra persona deber
adivinar dicha combinacin secreta para lo que dispondr como mximo de 8
intentos. Cada intento consistir en escribir 4 nmeros, tras lo cual el ordenador
escribir el nmero de muertos y de heridos.
Un nmero est muerto si coincide en valor y en posicin con la combinacin
secreta.
Un nmero est herido si coincide en valor pero no en posicin con la
Combinacin secreta.
Por ejemplo: si la combinacin secreta es (5 3 1 2), en el intento (5 1 4 4) hay 1
muerto (el 5) y un herido (el 1). Segn esta definicin en el intento (5 1 1 2)
Habra 3 muertos (el 5, el segundo 1 y el 2) y 1 herido (el primer 1).
El programa terminar por una de las dos siguientes situaciones: a) el
Jugador ha acertado la combinacin escrita por el otro o b) se ha llegado a 8
Intentos sin acertarla.
NOTAS: el ejercicio est resuelto sin utilizar tablas pero bien podra hacerse
Guardando los nmeros de la combinacin en la tabla. Adems se podra contar
el nmero de muertos y de heridos usando bucles.

import javax.swing.JOptionPane;
public class PROB23 {

public static void main(String[] args){

int p,p1,a,b,c,d,r1,r2,r3,r4,e,f,g,h,m,ma,i;

p=Integer.parseInt(JOptionPane.showInputDialog(null,"escribe el numero secreto:


","mensaje",JOptionPane.INFORMATION_MESSAGE));
p1=Integer.parseInt(JOptionPane.showInputDialog(null,"escribe tu jugada:
","mensaje",JOptionPane.INFORMATION_MESSAGE));
a=p/1000; e=p1/1000;
r1=p%1000; r3=p1%1000;
b=r1/100; f=r3/100;
r2=r1%100; r4=r3%100;
c=r2/10; g=r4/10;
d=r2%10; h=r4%10;

if(p==p1)
{JOptionPane.showMessageDialog(null,"Lo has conseguido ","MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
else {if(a==e )
{m=a;
JOptionPane.showMessageDialog(null,"un muerto es: "+m,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if( b==f )
{m=b;
JOptionPane.showMessageDialog(null,"un muerto es: "+m,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if( c==g )
{m=c;
JOptionPane.showMessageDialog(null,"un muerto es : "+m,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if(d==h)
{m=d;
JOptionPane.showMessageDialog(null,"un muerto es: "+m,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);} }

if(a==f || a==g || a==h)


{ma=a;
JOptionPane.showMessageDialog(null,"un herido es: "+ma,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if(b==e || b==g ||b==h )
{ma=b;
JOptionPane.showMessageDialog(null,"un herido es: "+ma,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if(c==e || c==f || c==h )
{ma=c;
JOptionPane.showMessageDialog(null,"un herido es: "+ma,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
if( d==e || d==f || d==g )
{ma=d;
JOptionPane.showMessageDialog(null,"un herido es: "+ma,"MASTER
MIND",JOptionPane.INFORMATION_MESSAGE);}
}}

PROBLEMA 24:

Leer dos nmeros n y m y escribir el nmero combinatorio n sobre m.

import java.util.Scanner;
public class preg24 { public static void
main(String[] args)

Scanner s=new
Scanner(System.in);

int n,m,i,j,k,fact_n=1,fact_m=1,fact_l=1,rpta;

System.out.println("Programa para hallar la combinatoria de 2 numeros");

System.out.println("Ingrese primer numero (el mayor)");

n=s.nextInt(); System.out.println("Ingrese segundo numero (el menor)");


m=s.nextInt();
for(i=1;i<=n;i++)
{fact_n=fact_n*i;}
for(j=1;j<=m;j++)
{fact_m=fact_m*j;}

for(k=1;k<=(n-m);k++)
{fact_l=fact_l*k;}

rpta=fact_n/(fact_m*fact_l);

System.out.println("La combinatoria es: "+rpta);


}}

PROBLEMA 25:

Leer un nmero n del teclado y escribir el tringulo de Tartaglia hasta la fila


n-sima.

import java.util.Scanner;
public class preg25 { public static void main(String[] args)

{ int a=1,b=1,c=1,i,j,n,comb=1,fact_a=1,fact_b=1,fact_c=1;

Scanner s = new Scanner(System.in);

System.out.println("Ingrese un numero...");

n=s.nextInt();
for(i=2;i<n+2;i++)
{ for(j=0;j<i-1;j++)

{ for(a=1;a<=i-2;a++)

{fact_a=fact_a*a;}

for(b=1;b<=j;b++)

{fact_b=fact_b*b;}

for(c=1;c<=i-j-2;c++)

{fact_c=fact_c*c;}

comb=fact_a/(fact_b*fact_c);

System.out.print(comb+" ");
fact_a=1; fact_b=1; fact_c=1; } System.out.print("\n");

}}}
27.- Leer un nmero del teclado y decir si es un nmero perfecto. Un nmero es
perfecto si es igual a la suma de todos sus divisores (incluyendo al 1 pero
excluyndose a l mismo).

import java.util.Scanner;
public class NumeroPerfecto {
public static void main(String[] args) {
int i, suma = 0, n;
Scanner sc = new Scanner(System.in);
System.out.println("Introduce un nmero: ");
n = sc.nextInt();
for (i = 1; i < n; i++) { }
if (n % i == 0) {
suma = suma + i;
}
}
if (suma == n) {
System.out.println("Perfecto");
} else {
System.out.println("No es perfecto");

}
}
}

28.- Realizar un programa que escriba todos los nmeros perfectos entre el 1 y
el 10000.

public class NumerosPerfectos1a1000 {


public static void main(String[] args) {
int i, j, suma;
System.out.println("Nmeros perfectos entre 1 y 1000: ");
for(i=1;i<=1000;i++){
suma=0;
for(j=1;j<i;j++){
if(i%j==0){
suma=suma+j;
}
}
if(i==suma){
System.out.println(i);
}
}
}
}

29.- Realizar un programa que escriba los 4 primeros nmeros perfectos.

public class NumerosPerfectos {


public static void main(String[] args) {
int i, j, suma;
System.out.println("Nmeros perfectos entre 1 y 1000: ");
for(i=1;i<=4;i suma=0;
for(j=1;j<i;j++){
if(i%j==0){
suma=suma+j;
}
}
if(i==suma){ System.out.println(i);
}

S-ar putea să vă placă și