Em outras palavras ficaria +/- assim ?
public String primos(int n){
int i = Integer.parseInt(JOptionPane.showInputDialog("Insira o numero: "));
for(i = 2; i < n; i++){
if(n % 1 == 0){
a parte logica ficaria assim ?
Em outras palavras ficaria +/- assim ?
public String primos(int n){
int i = Integer.parseInt(JOptionPane.showInputDialog("Insira o numero: "));
for(i = 2; i < n; i++){
if(n % 1 == 0){
a parte logica ficaria assim ?
for(i = 2; i < n; i++){
if(n % 1 == 0){
De onde apareceu esse número ‘1’ que você pôs no cálculo do resto? Qualquer coisa, dividida por 1, dá resto zero.
é oque eu acabei de constatar tbm…acho que preciso entender melhor a respeitos dos primos, ainda não ta bem claro, e ta me atrapalhando no raciocinio logico…
Você precisa quebrar seu programa em partes. Se quiser resolver tudo com um “for” só, não vai funcionar.
O que o pessoal normalmente faria, no seu caso, é o seguinte: crie um método que determina se um número x é primo, e retorna true se o número for primo, e false em caso contrário.
A seguir, chame esse método para x = 2 até n. Se o número x for primo, então você acrescenta esse número na string.
Não vou dar o código pronto, até porque se você procurar aqui no GUJ, existem uns 200 posts que são de geração de números primos.
Não é “divisível por ele mesmo e por 1”, e sim “apenas” por ele mesmo e por 1!
o número 6 não é primo, por que é divisivel por 6, por 3 , por 2 e por 1 certo?
Lembrando que o numero 1 é divisivel apenas por 1 e por ele mesmo, mas como ele é o próprio 1, não é primo.
Um algoritmo interessante é o crivo de Eratóstenes, onde é feito um filtro cancelando todos os multiplos dos números… outra coisa interessante a respeito
do uso do for, é que o for precisa ir somente até a raiz quadrada do número em questão, se fosse o numero 100, seria necessário dividir até a “raiz quadrada de 100” ou seja até o número 10!