1
resposta

verificar se numero é primo em um vetor de 10 posições.

8) Criar um vetor A de 10 elementos do tipo inteiro • Solicitar os valores para o usuário e inserir no vetor A • Criar um vetor B de 10 elementos do tipo inteiro • Ler o vetor A e para cada elemento achar se é ou não primo e gravar no vetor B, (um) P para primo e (zero) para não primo • Após o cálculo mostrar o valor do elemento do vetor A e o correspondente do vetor B (zero não primo, e um primo)

1 resposta

Olá Keberson. A solução que pensei para a sua questão foi essa.

Primeiro utilizar a biblioteca stdio.h para utilizar as funções printf e scanf e usar um #define para definir a palavra TAMANHO com o valor 10.

#include <stdio.h>
#define TAMANHO 10

Para criar um vetor A de 10 elementos do tipo inteiro, utilizei a palavra TAMANHO que representa o valor 10.

    int A[TAMANHO];

Depois para solicitar os valores para o usuário e inserir no vetor A, utilizamos o for que vai de ZERO até o TAMANHO e utilizamos o scanf para pegar a entrada do usuário.

    for(int i=0; i<TAMANHO; i++){
        printf("Inserir o valor (%d/%d) : ",i+1,TAMANHO);
        scanf("%d",A+i);
    }

Para criar um vetor B de 10 elementos do tipo inteiro, seguimos os mesmo passos que usamos para criar o A.

    int B[TAMANHO];

Para ler o vetor A e para cada elemento achar se é ou não primo e gravar no vetor B, (um) P para primo e (zero) para não primo. Vamos utilizar novamente o for para passar pelas 10 posições e dessa vez vamos passar para uma outra função a obrigação de entender se o numero é primo ou não e a partir da resposta da função salvamos o 1 ou 0 no nosso vetor B.

    for(int i=0; i<TAMANHO; i++){
        if(eh_primo(A[i]))
            B[i] = 1;
        else
            B[i] = 0;
    }

A função eh_primo vai ficar responsável por descobrir se o numero é ou não primo e para fazer isso vamos utilizar a variável eh_primo que inicialmente vai assumir que o numero é primo e através do for vai tentar provar o contrario tentando dividir o numero por todos os números entre ele (A) e 2, e se um deles fizer um divisão com resto igual a zero a variável eh_primo vai mudar para 0 indicando que foi provado que aquele numero não é primo. No final retornamos a descoberta.

int eh_primo(int A){
    int eh_primo = 1;
    for(int i=2;i<A;i++)
        if(A%i == 0)
            eh_primo = 0;
    return eh_primo;
}

Finalmente após o cálculo mostrar o valor do elemento do vetor A e o correspondente do vetor B (zero não primo, e um primo), basta apenas utilizar nosso conhecido for para passar por todas as posições e imprimir se o numero é ou não primo.

    for(int i=0; i<TAMANHO; i++){
        printf("o numero %d eh ", A[i]);
        if(B[i] == 0)
            printf("não primo\n");
        else
            printf("primo\n");
    }

Espero ter ajudado, qualquer duvida não hesite em perguntar. Recomendo que faça os cursos de C para ter domínio da linguagem.

Bons estudos.