li sobre o Crivo de Eratóstenes, mas ainda to pensando como irei fazer isso no codigo fonte…
e sobre arrays ainda não aprendi… estou no comecinho da linguagem C… (Calouro na Universidade:P)
KassiPretti…
li sobre o Crivo de Eratóstenes nesse seu link, obrigado, mas ainda não sei converter linguagem Java para linguagem C…
Primeira coisa: como você sabe se um número é primo?
Já que vocês não podem usar arrays porque ainda não aprenderam (argh, como seria a vida sem arrays? ), então vocês têm de determinar se um número é primo pelo método da força bruta, ou seja, ir dividindo o número por todos os números que estão abaixo dele, até que chegue ao próprio número ou então ache um número que deixe resto zero.
Para achar o resto, você tem de procurar no seu livro de linguagem C e vai ver que existe o operador % (que não calcula porcentagens, como parece, mas acha o resto. ) Por exemplo: 10 % 5 dá resto 0, 10 % 3 dá resto 1.
Para ir dividindo o número por todos os números que estão abaixo dele, a partir do número 2, você precisa de um “for”. Já aprendeu a usar “for”? Se o professor não ensinou, você tem de procurar no seu livro.
E de modo geral: em programação, você tem sempre de “tirar a bunda da cadeira e procurar uma solução”. As coisas não vêm prontas, e infelizmente muitas delas estão em inglês.
Se a apostila que você tem é muito ruim (por exemplo, não ensina as coisas, ou tem muitos erros), vá a um sebo ou à biblioteca da sua escola e ache um livro.
Em português acho que existe aqueles livros da Victorine Viviane Mizrahi, que se chamam “Treinamento em Linguagem C”. Não sei se são bons, porque aprendi C há quase 25 anos atrás, e nunca li esse livro. Mas como é usado em várias escolas, deve ser fácil de achar em bibliotecas de escolas ou em sebos.
Minha Professora ensinou a usar tudo isso…
Como estou tendo algumas provas durante a semana…
Vou fazer o programinha no FDS…
Ja entendi a lógica…
Agora o serviço é meu
thx
thingol se vc quiser me add para eu perguntar umas coisas de programação add se vc tiver Msn j_jef_hilux@hotmail.com
#include <stdio.h>
int verifica_primos(int numero)
{
int numero_verificador; //numero que agira como contador. Ira de 1 até o numero a ser pesquisado
int multiplo; //variavel que recebera a soma dos multiplos
/*Vamos inicializar a variavel aqui para que ela nao continue somando os */
/* multiplos ao verificar outro numero */
multiplo = 0;
for (numero_verificador = 2; numero_verificador < numero; numero_verificador++){
if ((numero % numero_verificador) == 0){
multiplo == multiplo + numero_verificador;
}
}
if(multiplo ==(numero + 1)
{
return(1);
}
else
{
return(0);
}
}
int verifica_primos_epc(int numero){
int numero_verificador; //numero que agira como contador. Ira de 1 até o numero a ser pesquisado
int ehPrimo = 1; //variavel que recebera a soma dos multiplos
/*Vamos inicializar a variavel aqui para que ela nao continue somando os */
/* multiplos ao verificar outro numero */
for (numero_verificador = 2; numero_verificador < numero; numero_verificador++){
if ((numero % numero_verificador) == 0){
ehPrimo == 0;
}
}
return ehPrimo;
}
void main(){
int primo, contador, numeral;
primo = 0;
contador = 0;
while(contador <= 25){ /* O 25, ele ira verificar 25 numeros. que o usuario ira digitar */
printf("Informe algum numero para ser verificado: \n");
scanf("%i",&numeral);
primo = verifica_primos(numeral);
if (primo){
printf("O numero %d é primo.\n", numeral);
}
else{
printf("O numero %d não é primo.\n",numeral);
}
++contador;
}
}
[quote=bossanova] Minha primeira contribuição…
Usando função…
#include <stdio.h>
int verifica_primos(int numero)
{
int numero_verificador; //numero que agira como contador. Ira de 1 até o numero a ser pesquisado
int multiplo; //variavel que recebera a soma dos multiplos
/*Vamos inicializar a variavel aqui para que ela nao continue somando os */
/* multiplos ao verificar outro numero */
multiplo = 0;
for (numero_verificador = 2; numero_verificador < numero; numero_verificador++){
if ((numero % numero_verificador) == 0){
multiplo == multiplo + numero_verificador;
}
}
if(multiplo ==(numero + 1)
{
return(1);
}
else
{
return(0);
}
}
int verifica_primos_epc(int numero){
int numero_verificador; //numero que agira como contador. Ira de 1 até o numero a ser pesquisado
int ehPrimo = 1; //variavel que recebera a soma dos multiplos
/*Vamos inicializar a variavel aqui para que ela nao continue somando os */
/* multiplos ao verificar outro numero */
for (numero_verificador = 2; numero_verificador < numero; numero_verificador++){
if ((numero % numero_verificador) == 0){
ehPrimo == 0;
}
}
return ehPrimo;
}
void main(){
int primo, contador, numeral;
primo = 0;
contador = 0;
while(contador <= 25){ /* O 25, ele ira verificar 25 numeros. que o usuario ira digitar */
printf("Informe algum numero para ser verificado: \n");
scanf("%i",&numeral);
primo = verifica_primos(numeral);
if (primo){
printf("O numero %d é primo.\n", numeral);
}
else{
printf("O numero %d não é primo.\n",numeral);
}
++contador;
}
}
[/quote]
Em C não existe função do tipo “void”.
Sempre algo tem que retornar alguma coisa, acho.
Se estou errado, por favor, me corrijam.
EDITANDO:
Fui pesquisar e descobri que existe. :oops:
Pessoal, boa noite…
Sou estudante novato em C++ e gostaria de saber se alguém podem me ajudar a identificar por qual motivo após eu entrar com números maiores de 128 a função não retorna nada…
#include
using namespace std;
void primo(char x);
void main()
{
int num;
cout << “Entre com um numero para saber se eh primo e pressione ENTER:\n”;
cin >> num;
primo(num);
}