Test for prime number

Asked

Viewed 1,521 times

0

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(void){
    setlocale(LC_CTYPE,"");
    int num;
    int divisor = 2;
    int primo = 1; // se primo = 1 é primo // se for primo = 0 não é primo
        printf("| ****** VERIFICAR SE UM NÚMERO É PRIMO OU NÃO ****** |\n");
        printf("\n\tDigite aqui um número inteiro >==> ");
            scanf("%d",&num);
            while(divisor <= num/2){
                divisor ++; //incremeenta o divisor para o teste
                if(num % divisor == 0){
                    primo = 0;
                    break;
                }
            }
                if(primo == 1)
                    printf("\n\t%d este número é primo.", num);
                else
                    printf("\n\t%d este número não é primo.", num);
return 0;
system("pause");
}

I managed to solve it this way up here

  • 1

    There are others, what has more is duplicate of this.

2 answers

0

In order for the test to be correct you really have to cycle through all the elements in the middle:

int i;

for (i = 2; i < numeroDigitado ; ++i){ //percorrer do 2 até anterior do que foi escolhido
    if (numeroDigitado % i == 0){
         printf("%d é primo", numeroDigitado);
         return 0; //terminar aqui para nao ver mais elementos, porque já se sabe que é primo
    }
}
  • exact, I made a mess here, doing a table test on the piece of code I did, I saw that it makes no sense that kkkk.

  • The example you have works, but only for some numbers, the lowest

0

No, this is a terrible way to do it. I found this on the Internet, it’s more functional:

#include <stdio.h>
int main()
{
    int n, i, flag = 0;

    printf("Escreva um numero positivo: ");
    scanf("%d",&n);

    for(i=2; i<=n/2; ++i)
    {
        if(n%i==0) //Faz a checagem se o numero é divisível ou não por i
        {
            flag=1;
            break;
        }
    }

    if (flag==0)
        printf("%d é um numero primo.",n);
    else
        printf("%d não é um numero primo.",n);

    return 0;
}

Credits

Browser other questions tagged

You are not signed in. Login or sign up in order to post.