Ir ao conteúdo
  • Cadastre-se

pedro02

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

4
  1. Preciso criar um algoritmo que me mostre se os numeros printados na tela sao primos entre si. Mas primeiro a se pedir é o numero de testes a serem feitos. Segundo, os números que o usuário deseja verificar. E no final mensagem dizendo se os numeros verificados são primos ou não. Meu código ta dando problema porque quando coloco determinados valores como 21 e 77 e 53 e 11 o programa aponto como não sendo primos entre si. O enunciado do algoritmo. "Dados dois números inteiros, verifique se eles são ou não primos entre si. Dois númerossão primos entre si quando somente o número 1 é um divisor comum dos dois números. ENTRADA - A entrada contém um conjunto de teste que deve ser lido da entrada padrão. A primeira linha contém um número N ( 1 ≤ N ≤ 100 ). Este número N representa a quantidade detestes a ser realizada em seguida. Cada teste consta de dois números inteiros positivos válidos em uma linha. SAÍDA - Seu programa deve imprimir, na saída padrão, uma linha para cada caso de teste,contendo SIM ou NAO para o fato dos números serem primos entre si. import java.util.*; import java.io.*; public class Primosentresi{ public static void main(String[] args){ Scanner leitor = new Scanner(System.in); int n; int a; int b; int primos=0; int maior=0; do{ n = leitor.nextInt(); }while(n < 1 && n> 100); for( int i=0; i<n; i++) { a = leitor.nextInt(); b = leitor.nextInt(); if(a>b) maior = a; else maior = b; for (int j=2; j<=maior; j++){ if( b % j ==0 && a % j==0){ primos=1; } } if(primos == 0){ System.out.println("SIM"); }else{ System.out.println("NAO"); } } } }
  2. Muito obrigado @devair1010 consegui resolver e debugar.
  3. Estou com uma certa dificuldade em fazer esse código rodar e de entender o erro. Preciso resolver a seguinte questão Leia N números em um array de dimensão informada na entrada. Para este array, conte e imprima a quantos de seus elementos são repetidos. Cada valor repetido conta uma vez, independentemente da quantidade de repetições. ENTRADA A entrada contém um conjunto de teste que deve ser lido da entrada padrão. A primeira linha contém um número N ( 2 ≤ N ≤ 100 ). Este número N representa a quantidade de números a ser lida em seguida. Cada um destes números estará em uma linha posterior, sendo um valor inteiro positivo válido M ( 1 ≤ M ≤ 100 ). SAÍDA Seu programa deve imprimir, na saída padrão, uma resposta em uma linha contendo a quantidade de elementos com ocorrências repetidas do array. ENTRADA 8 1 2 3 1 2 3 4 5 SAÍDA 3 import java.util.Scanner; import java.util.Arrays; public class Repetidos{ public static void main(String[] args){ Scanner leitor = new Scanner(System.in); int quant=2; int repetido=0; int cond=1; while(quant <2 && quant >100);{ System.out.print("Quantos números deseja verificar? "); } quant = leitor.nextInt(); int numeros[] = new int[quant]; // array numeros recebe a quantidade de numeros a ser lida do{ System.out.println("Digite os "+quant+" numeros:"); }while (cond <1 && cond>100); for (int i=0; i<=numeros.length; i++){ numeros[i]= leitor.nextInt(); for(int z=i-1; z>=0; z--){ if(numeros[z]==numeros[i]){ repetido++; break; } } } System.out.println("Existem "+repetido+" numeros repetidos"); } } O problema é que na hora de pedir pra digitar o programa sempre aceita digitar um número a mais. Ainda me aparece uma mensagem de erro assim: "Exception in thread "main" java.lang.ArrayIndexOutofBoundsException: Index 2 out of bounds for length 2 at Repetidos.main(Repetidos.java:28) Alguém me ajuda por favor. Agradeço desde já. adicionado 4 minutos depois E ainda se eu digitar algo diferente entre o laço while nos dois casos ele me dá uma mensagem de erro do tipo "Exception in thread "main" java.lang.NegativeArraySizeException: -1 (o valor no caso que eu digitei) at Repetidos.main(Repetidos.java:17) E daí o programa fecha. Eu queria que o usuário continuasse no laço enquanto ele não digitar o valor correto. adicionado 21 minutos depois Já resolvi a saída padrão de números. Troquei o <= por < e saiu certinho. O problema é quando o usuário digita um número inválido. Não há como deixar ele dentro do laço sem finalizar o programa?? for (int i=0; i<numeros.length; i++){ numeros[i]= leitor.nextInt();
  4. O programa é o seguinte: 1. Calcular e escrever a potenciação. A base e o expoente deverão ser valores lidos – rejeitar a leitura de valores inválidos. Considere: base um valor real. Expoente: um número inteiro, positivo ou nulo(zero). Obs: Não usar a biblioteca Math. A potenciação deverá ser calculada de forma iterativa. Como eu faria o while para o valor de X validar somente números e não caracteres? #include <stdlib.h> #include <stdio.h> #include <conio.h> int main () { int y, pot=0,i=0, count=0; float x; do { printf ("\nEntre com o valor real: "); scanf ("%f",&x); printf ("\nEntre com o valor de Y: "); scanf ("%d",&y); if (!scanf("%f",&x)) printf("\n Valor invalido. Digite novamente!"); else if ( y < 0 ) printf("\n Digite um valor positivo!"); } while (y < 0 || x pot = x; for (i=1;i<y;i++) { pot = x*(x*i); } printf ("\nO valor real se elevado a Y sera de: %d", pot); printf("\n\n\n.................FIM.................."); getch(); return 0; }
  5. O programa é o seguinte: 1. Calcular e escrever a potenciação. A base e o expoente deverão ser valores lidos – rejeitar a leitura de valores inválidos. Considere: base um valor real. Expoente: um número inteiro, positivo ou nulo(zero). Obs: Não usar a biblioteca Math. A potenciação deverá ser calculada de forma iterativa. Ainda estou com o problema de loop infinito. Não consigo visualizar o problema. #include <stdlib.h> #include <stdio.h> #include <conio.h> int main () { int y, pot=0,i=0, count=0; float x; do { printf ("Entre com o valor real: "); scanf ("%f",&x); printf ("Entre com o valor de Y: "); scanf ("%d",&y); if (y < 0 ) printf("\n Entre com um valor positivo"); else if (!scanf("%f",&x)) printf("\n Valor invalido. Digite novamente!"); } while (y < 0 || x pot = x; for (i=1;i<y;i++) { pot = x*(x*i); } printf ("\nO valor real se elevado a Y sera de: %d", pot); printf("\n\n\n.................FIM.................."); getch(); return 0; }
  6. Estou com uma dúvida em um programa em C. Preciso ler um valor que seja real e que proiba do usuário digitar qualquer outra coisa a não ser número real. Caracteres e afins estão proibidos de serem aceitos. E assim gerar uma mensagem de valor inválido ao usuário. Ate aí, tudo bem. Mas meu programa após exibir a mensagem de erro não executa o loop novamente, só finaliza o programa. Alguém poderia me ajudar !? int main() { float base; do { printf("\nDigite o valor da base: "); scanf("%f", &base); while (base != scanf("%f", &base)); printf ("\nValor invalido! Digite novamente"); } while (base != scanf("%f", &base)); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...