Ir ao conteúdo
  • Cadastre-se

Marcelly

Membros Juniores
  • Total de itens

    5
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. @arfneto Sim, pois raiz quadrada precisaria da library math.h e nao posso utiliza-la...
  2. @arfneto Sim, vetor está fora dos limites. Eu concordo contigo, acho que todas essas restricoes acabam piorando o aprendizado. voce chegou a rodar o programa? Esse trecho de codigo que voce postou por ultimo, nunca retorna que a representação não é possivel. É uma das coisas que está me deixando louca kkk O next acho que faz exatamente isso que você disse de proximo primo. voce pode ver no final do codigo que existe p1 = p2, p2 = p3 e etc.
  3. @arfneto Entao, nao é permitido utilizar funcoes, nem vetores, nem breaks nem nada. Na verdade eu inseri o break após ler muito e ver alguns exemplos pelo Google pois n tinha e continuo n tendo ideia do que utilizar. Eles exigem que voce utilize apenas o que foi visto em aula até aqui: if, for e while, nada além. Unica biblioteca permitida é <stdio.h> Para quem está iniciando na linguagem, é um pouco pesado devo dizer. voce poderia me dizer mais detalhadamente como coloco em pratica suas observacoes? Muitissimo obrigada ate aqui.
  4. @arfneto Olá! Como vai? Obrigada pela sua resposta. Na verdade eu venho alterando o código pois estou o dia inteiro mexendo nele e cada hora chego em uma conclusão diferente. Vou postar o código abaixo, e tentar explicar mais ou menos o problema que estou enfrentando agora: 1- Nao consigo enxergar uma forma de fazer isso sem True ou False; 2- Nao posso utilizar breaks, ja tentei whiles e etc mas nada dá certo; 3 - Era suposto fazer um loop para que o usuário só parasse de dar entradas se por acaso ele digitasse zero, e o programa deve funcionar para 0 < n < 10ˆ8; 4 - Não consigo incluir a saída para o caso de o numero não conseguir ser representado pelo quadrado de 4 números primos consecutivos. Eis o código que tenho até agora: Se você notar, se eu insiro um numero qualquer, por exemplo: 2020, o programa me retorna que ele pode ser representado pela soma de 17ˆ2+19ˆ2+23ˆ2+29ˆ2, ou se eu insiro 100 por exemplo, ele deveria me retornar que é impossível, mas ele fica pensando e não retorna nada. Peço desculpas pela alteração do código anterior e do enunciado. Fiz alterações omitindo o que achava que já tinha em mãos, mas me enganei. É que horas e horas mexendo com isso, cada hora que penso estar no caminho certo, acho que embaralho mais ainda o conjunto. #include <stdio.h> #define TRUE 1 #define FALSE 0 int main() { int p1=2, p2=3, p3=5, p4=7, next, i, n, prime; printf("Entrada: "); scanf("%d", &n); while (TRUE){ if((p1*p1) + (p2*p2) + (p3*p3) + (p4*p4) == n){ printf("Saida: %dˆ2 + %dˆ2 + %dˆ2 + %dˆ2\n", p1, p2, p3, p4); break; } next = p4 + 2; if (next > n) { printf("Impossivel a representacao"); break;} if(next < n) { prime = FALSE; while (next < n && prime == FALSE) { prime = TRUE; for (i=3; i < next && prime == TRUE; i+=2) { if (next % i == 0) prime = FALSE; } if (prime == TRUE) { p1 = p2; p2 = p3; p3 = p4; p4 = next; } else { next += 2; } } } } return 0; } adicionado 4 minutos depois Digite um numero (0 < n < 10^8): 100 Nao existem 4 primos consecutivos cujos quadrados somam 100 Digite um numero (0 < n < 10^8): 1002172 1002172 = 491^2 + 499^2 + 503^2 + 509^2 Digite um numero (0 < n < 10^8): 0 Boa sorte! Essa é a saída esperada pelo programa, @arfneto. Mas estou enfrentando dificuldade em defini-la.
  5. Estou trabalhando em um código, porém não consigo compreender o que há de errado. A sequencia só funciona para a primeira entrada, e depois simplesmente apaga. É suposto que o usuario entre com um numero qualquer (0 a 10ˆ8) e o programa retorne se aquele numero inserido pode ser representado como a soma de 4 primos , por exemplo: Entrada: 87 Saída: 2ˆ2 + 3ˆ2+ 5ˆ2+7ˆ2 Entrada: 100 Saída: Não é possível a representação Qualquer dica, agradeço imensamente. Obs: É proibido utilizar funções, vetores, breaks e etc. É um trabalho de faculdade sobre as funções mais básicas: ifs, fors e whiles. Obrigada! Eis o código: #include <stdio.h> #include <math.h> int main() { int j1, j2, j3, j4, next, i, numb, prime; printf("Entrada: "); scanf("%d", &n); while(1){ if((j1 *j1) + (j2 *j2) + (j3 *j3) + (j4 *j4) == n){ printf("Saida: %d + %d + %d + %d", j1, j2, j3, j4); } next = p4+2; if(next > n) printf("Impossivel"); while(1) for(i=3; i<= sqrt(next); i=i+2){ if(next % i == 0) prime = false; else{ prime = true;} } if(prime == true){ p1=p2; p2=p3; p3=p4; p4=next; } else{ next = next +2;} } return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!