Resto Divisao

So_SiMpLe_

Power Member
Boas!
Alguem sabe como posso saber o resto de uma divisao qualque efectuada em C? é para saber se o numero é multiplo ou nao de 3 por exemplo.
Obrigado!
Abraço!
 
Hum pera é so o simbolo %? podes so exemplificar como é que se obtem msm numa divisao? tipo:

{
(...)
a=b/c;
printf("a=: %d", &a);
printf("resto: %d" ......??
(...)
}
 
hey!
Já agora outra duvida:
Usando 2 variaveis e para confirmação de uma if, posso fazer assim?:

if (resto=0 || resto2=0);

como posso fazer? tá me a dar erro " the left hand side of the alignment can't be assigned to"
Obrigado!
 
Código:
 if (resto[COLOR=Red]==[/COLOR]0 || resto2[COLOR=Red]==[/COLOR]0);

Para fazeres comparações tens que ter 2 sinais de igual. Se só tiveres 1, estás a fazer uma atribuição.
 
Já agora desculpem la, tenho o programa assim, mas o problema é que o numero sendo ou nao primo, vai sempre afirmal que é primo, divindo,se a ele proprio ou por 1 será sempre o mesmo resto que seja primo ou nao.
Como e que confirmo se é mesmo primo??

#include <stdio.h>
int main (void)
{
int numero,resto2, resto, quociente;
printf("introduza numero para vericicacao de primo: ");
scanf ("%d", &numero);
resto=numero%numero;
resto2=numero%1;
if( resto==0 || resto2==0 )
printf("Numero primo");
else
printf("nao e primo");
return 0;
}

Tks
 
Primeiro convem saberes o que é um numero primo... :lol:

Isso que tens aí é completamente absurdo, é obvio que o resto da divisao de um numero por ele proprio é sempre 0, e o resto da divisão de um numero por 1 é sempre 0.
Um numero primo é um numero que não tem divisor inteiro à excepçao dele proprio e do 1. É mais ou menos o contrário do que estás a fazer.

Pensa lá nisso melhor.
 
Hey!
Pois, a minha ideia era caso desse resto 0 na divisao de o numero pr ele proprio(primo) ou por 1 (primo), ia dizer que o numero era primo, mas a forma como fiz dá para qualquer numero, seja ele qual for, se dividido por ele proprio ou por 1 dá sempre resto 0.
Ja queimei o tico com isto tenho de respirar fundo e olhar outra vez pra tudo senao queimo o teco :D.
Tks!
 
Ciclo a começar em 2 e a ir até ao número q queres saber-1.

Se em alguma iteração, o numero % i for igual a 0, não é primo.
 
Então imagina que introduzes 5.

Além de dividires 5 por 1, e 5 por 5, tens que considerar o 2, 3 e 4 certo?

Isso consegues com um ciclo que vai dividindo o nº introduzido por (introduzido-1) ou seja, tem que decrementar até ser 1.

Se nessas divisoes existe um numero, antes de 1, cuja divisao dá resto zero o nº não é primo. (ex: 4%4 = 0, 4%3 diferente 0, 4%2 = 0, 4%1=0)
 
Se introduzes o 5, ou o 99, que interessa dividir por 1 e por 99?

A divisão de qq numero por 1, e por ele próprio dá sempre o mesmo resultado, não interessa comparar.

Interessa sim dividir pelos outros. E com certeza é mais eficiente começar pela divisão em 2 do que em (numero_introduzido -1).
 
Se introduzes o 5, ou o 99, que interessa dividir por 1 e por 99?

A divisão de qq numero por 1, e por ele próprio dá sempre o mesmo resultado, não interessa comparar.

Interessa sim dividir pelos outros. E com certeza é mais eficiente começar pela divisão em 2 do que em (numero_introduzido -1).

Não terás mais condições assim? será mais eficiente?
 
Não terás mais condições assim? será mais eficiente?

Mais condições?
A tua forma é que iria ter mais condiçoes, esta assim é so um ciclo for.
Aliás, nem precisa de fazer comparações desnecessárias, pode parar a meio!

sendo n o numero:
for(int i = 2 ; i < n/2 ; i++)

o resto fazes tu :P
 
Back
Topo