preciso criar um programa que leia um número e diga se este número é primo.
isto e Facil
Mas como voce quer algo em java ai vai um em C
#include <stdio.h>
int main(void){
int a,b,p,cont,test;
printf("Introduz o intervalo:");
if((scanf("%d %d",&a,&b))==0){
printf("ERRO\n");return 0;}
if(a>b)
{
p=a;a=b;b=p;
}
printf("Intervalo:%d a %d\n",a,b);
puts("LISTA DE PRIMOS:");
for(;a<=b;a++)
{
for(test=1,cont=0; test<=(a/2) && cont<2 ;test++)
{
if(a%test==0)
cont=cont+1;
}
if(cont<2){
if(a>1){printf("%d ",a);}}
}
puts("\n");
return 0;
}
E claro que existem ns formas, mas um dos procedimentos mais simples, ainda que trabalhoso, é o seguinte:
Vá testando a divisibilidade do número por cada um dos números primos, iniciando em 2, até que a divisão tenha resto zero ou que o quociente seja menor ou igual ao número primo que se está testando como divisor.
Vamos testar se o número 17 é primo ou não:
17 : 2 = 8, resta 1;
17 : 3 = 5, restam 2;
17 : 5 = 3, restam 2.
Neste ponto já podemos ter a certeza de que o número 17 é primo, pois nenhum dos divisores primos testados produziu resto 0 e o quociente da divisão pelo número primo 5 é igual a 3 que é menor que o divisor 5.
Antes de tudo veja a definição de numeros primos,
Voce pode iniciar 4 variaveis:
int elemesmo = 0;
int contador = 0;
int numero;
int resto;
e verificar se o resto for igual a zero entao soma 1 no contador,
faça uma validação , se o contador for menor que três então é numero primo, senão não.
mais ou menos por ai.
[code]#include <stdio.h>
int main(){
int n = 0;
int c = 0;
scanf("%d", &n);
if(n < 0){
n = -n;
}
if(n == 0 || n == 1){
printf("nao");
}else{
for ( c = 2 ; c <= n - 1 ; c++ ){
if ( n%c == 0 ){
printf("nao");
break;
}
}
if ( c == n )
printf("sim");
return 0;
}
}[/code]
Acho que isso resolve! Em C!