Ir ao conteúdo

Posts recomendados

Postado

<> Faça um programa que leia 10 números positivos, após escreva o maior e o menor número primo digitado. Programa deverá escrever -1 se nenhum primo for digitado. Um número é primo se é divisível somente por 1 e por ele mesmo.

 

Eu fiz a parte de ler os 10 numeros, porém não sei como faço para implementar essa parte dos numeros primos.

<>

 

 

#include <stdio.h>
#include <stdlib.h>
void main()
{       
    int i,n,sum=0;
    float avg;
    printf("Escreva 10 números : \n");
    for (i=1;i<=10;i++)
    {
        
        printf("Numero %d :",i);

        scanf("%d",&n);
        sum +=n;
        
    }
 
 for (i = 2; i <= n / 2; i++) {
    if (n % i == 0) {
       sum++;
       break;
    }
 }
 
 if (sum == 0)
    printf("%d é o maior número primo\n", n);
 else
    printf("%d  é o menor número primo\n", n);
 
 return 0;
}

  • Curtir 1
Postado

@Goodless     para saber se o número é primo você precisa verificar todos que estão no intervalo de dois até o número , e depois disso você precisa averiguar se esse número primo é maior que o outro primo anterior ,  e esse código extraído da pasta exemplos do VisualG 3.0 , parece Funcionar bem nesse quesito , e outra coisa que precisa lembrar é que na Linguagem e também na C++ "CPP"  , é que os números inteiros variam de -2147483647 - 1  até  2147483647 ,  então se você inserir algum número fora desse intervalo dará erro  , e então seu código com muitas modificações poderia ser assim  :

#include <stdio.h>
#include <time.h>
#include <iomanip>
#include <vector>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <windows.h>
int main()
{
    int i,n,sum=0,j,Mp;
    float avg;
    char a[10];
    printf("Escreva 10 números :\n");
    for( i=0; i<10; i++ )                       //  geralmente se usa de zero até enquanto for menor que Tal
    {
        do
        {
            printf("Numero %d : ",i+1);
            fgets(a,10,stdin);                  //  scanf("%d",&n);
            for( j=0; j<(strlen(a))-1; j++)
                if( ! isdigit( a[j] ) ) n = 0;  //  validação , para digitar apenas numeros
                else n = atoi( a );
            if( ! n )printf("Apenas Digitos Numericos\n");
        }while( ! n );
        avg = 0;                                //  controle para AveriGuaR primos e não primos
        for( j=2; j<n; j++ )                    //  averiguar todos os números no intervalo
            if( n % j == 0 )avg=1;              //  se for divisível por algum deles marca como não primo
        if( ! avg )                             //  se Não é Primo
            if( ! i )Mp = n;                    //  se for o primeiro número digitado coloca ele como sendo o Maior primo
        else                                    //  senão
            if( Mp < n )                        //  se o Maior primo for menor que o número digitado
                Mp = n;                         //  armazena o número em Mp
        sum += n;
    }
    printf(" +> %d <- eh o Maior número primo\n\n\n",Mp);
    return 8;
}

 

Postado

Em que lugar fica o teste de primalidade relação a leitura? Compreende-se primeiro há  leitura de um número inteiro (IN) seguido de 3 verificações mutualmente dependentes (é primo, é o maior ou é o menor primo atual); "average" ou avg é abreviatura (inglesa) para média que se convenciona em média aritmética, algo que não lhe (o exercício) interessa. "sum" no idioma é soma e significa com isso que não tem ideia do que fez ou do que tem que fazer (chamado "travei"); quem é experiente em educação diz que precisas de (revisão) ou mais aulas.

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...