Escreva um algoritmo que preencha um vetor de 50 números inteiros e substitua todos os números primos por zero.
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define tam 50
void ordena_vet(int *vet[])
{
int aux = 0;
for(int i=0; i<tam; i++)
for(int j=0; j<tam-1; j++)
if(vet[j] > vet[i])
{
aux = vet[j];
vet[j] = vet[i];
vet[i] = aux;
}
}
int main()
{
srand(time(NULL));
//CRIAR VARS
int flag, i, j, vet[tam];
//INICIALIZAR VARS
for(i=0; i<tam; i++)
vet[i] = 0;
flag = 0;
//PROCESSAR DADOS
//NÃO RECEBER ELEMENTOS REPETIDOS NO VETOR
for(i=0; i<tam; i++)
{
vet[i] = rand() % tam;
for(j=0; j<i; j++)
while(vet[i] == vet[j])
{
vet[i] = rand() % tam;
j = 0;
}
}
//ORDENAR VETOR
ordena_vet(&vet);
//SUBSTITUIR NÚMEROS PRIMOS POR ZERO
for(i=0; i<tam-1; i++)
{
for(j=1; j<=tam-1; j++)
if(vet[i] % j == 0)
flag++;
if(flag == 2)
vet[i] = 0;
flag = 0;
}
printf("\n\n\t=====================");
printf("\n\t|| VETOR DE 0 A 49 ||");
printf("\n\t=====================\n\n");
for(i=0; i<tam; i++)
printf("\n VETOR [%3d]: %3d\n",i+1,vet[i]);
return 0;
}
Explicação:
Fiz o código de forma que o vetor também fosse preenchido com valores de 0 a 49 ordenado crescentemente.
Abraços e bons estudos!