[Off] [Desafio] Nъmeros primos
#1

Nнvel: Fбcil
Objetivo: Desenvolver um cуdigo em que й dado um nъmero, pode ser atravйs de uma variбvel, e o programa deve mostrar todas as possibilidades de nъmeros primos atй o nъmero informado.
Exemplo de base:
Код:
x = 20

Lуgica para mostrar os nъmeros primos de 0 atй 20.

Saнda: 1 2 3 5 7 11 13 17 19
Extra: Quanto menas linhas utilizar, melhor. Em python consegui fazer em apenas 1 linha, porйm fique a vontade para fazer em quantas conseguir.

Observaзгo: Peзo ao WIllian e Gustavo que me ajudem a analisar os cуdigos.
Reply
#2

C#
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Testing
{
    class Program
    {
        static void Main(string[] args)
        {
            int num;
            
            Console.Write("Insira o numero a ser verificado: ");
            num = Convert.ToInt16( Console.ReadLine() );

            for(int i = 2; i <= num; i++){
                if (i != 2 && i != 3 && i != 5 && i != 7){
                    if ((i % 2 > 0) && (i % 3 > 0) && (i % 5 > 0) && (i % 7 > 0)){
						Console.WriteLine("{0} й primo!", i);   
                    }
                }
                else {
                    Console.WriteLine("{0} й primo!", i);
                }
            }
            Console.ReadKey();
        }
    }
}
Код:
100 -
2,3,5,7, 11,13,17,19,23,29,31,37,41,43,47, 53,59, 
61,67,71,73,79, 83,89 e 97.
Reply
#3

@Sky_., espero que vocк nгo leve pro lado pessoal, mas ficou meio enrolado seu cуdigo, e pra que serve a variбvel 'quo' ? Vocк nгo faz uso dela...
Reply
#4

pawn Код:
#include <stdio.h>
#include <stdlib.h>

int main() {
   
    int delimitador;
   
    printf("Informe um delimitador: \n");
    scanf("%d", &delimitador);
    fflush(stdin);
   
    int i, j, array[delimitador + 1];
   
    for ( array[1] = 0, i = 2; i <= delimitador; ++i) {
       
        array[i] = 1;
    }
   
    for ( i = 2; i <= delimitador / 2; ++i) {
       
        for ( j = 2; j <= delimitador / i; j++)
            array[i * j] = 0;
    }
   
    for ( i = 1; i <= delimitador; ++i) {
       
        if ( array[i] == 1)
            printf("%d\n", i);
           
    }
   
    system("pause");
    return 0;
}
http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes
Reply
#5

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
@Sky_., espero que vocк nгo leve pro lado pessoal, mas ficou meio enrolado seu cуdigo, e pra que serve a variбvel 'quo' ? Vocк nгo faz uso dela...
sim, enquanto fazia a minha lуgica, eu fiz uso dela porйm retirei ...
brigado por lembrar ..

@Eratуstenes como esse cara penso nisso ¬¬
Reply
#6

@iCasTiel, interessante esse algoritmo ai que tu mandou..

Eu nгo testei, mas olhei o link...
Reply
#7

Java - Utilizei a Trial Division

PHP код:
import java.util.Scanner;
public class 
Primos_SAMP {
    public static 
void main(String[] args) {
        
Scanner in = new Scanner(System.in);
        
System.out.println("Digite um nъmero: ");
        
int max in.nextInt();
        for(
int i 1maxi++) {
            if(
checkPrime(i))
                
System.out.print(" ");
        }
        
System.out.println("Terminado");
        
in.close();
    }
    
    public static 
boolean checkPrime(int n) {
        for(
int i 2ni++) {
            if(
== 0)
                return 
false;
        }
        return 
true;
    }

C - Muito semelhante ao que fiz em Java... й o hбbito

Код:
#include <stdio.h>

int checkPrime(int n);

int main(int argc[], char *argv[])
{
	int max;
	printf("Digite um nъmero: ");
	scanf("%d", &max);
	int i;
	for(i = 1; i < max; i++) {
		if(checkPrime(i) == 1)
			printf("%d\n", i);
	}
	return 0;
}

int checkPrime(int n) {
	int j;
	for(j = 2; j < n; j++) {
		if(n % j == 0)
	        	return 0;
	}
	return 1;
}
Talvez seja possнvel ser feito numa linha, mas saiu-me isto
Reply
#8

@Sky estб funcional parabйns! Todavia tem como diminuir a lуgica. Vou postar o meu script e vк se vocк consegue sacar. EM apenas 1 IF vocк pode verificar se ele й primo ou nгo independente da linguagem :P

@ICastiel
Eu vi jб esse algoritmo na primeira vez que me deram o desafio do nъmero primo porйm nunca apliquei ele em programaзгo, parabйns :P

Meu cуdigo em Python
Код:
var = 100
filter(lambda x: x == 2 or x == 3 or (x % 2 and x % 3 and x % 5 and x % 7), range(v+1))
Sim sу isso '-'

Saнda
[1, 2, 3, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
Reply
#9

Quote:
Originally Posted by JoaoPedro
Посмотреть сообщение
@Sky estб funcional parabйns! Todavia tem como diminuir a lуgica. Vou postar o meu script e vк se vocк consegue sacar. EM apenas 1 IF vocк pode verificar se ele й primo ou nгo independente da linguagem :P

@ICastiel
Eu vi jб esse algoritmo na primeira vez que me deram o desafio do nъmero primo porйm nunca apliquei ele em programaзгo, parabйns :P

Meu cуdigo em Python
Код:
var = 100
filter(lambda x: x % 2 and x % 3, range(v+1))
Sim sу isso '-'

Saнda
[1,[2,3] 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97]
//e usando desta forma nгo imprimirб o 2, 3
Код:
x % 2
x % 3
x % 5
x % 7
porйm seu code estб errado pois 25, 49 nгo sгo nъmeros primos Amore <3
49 й divisivel por 7 e 25 por 5 ^^
me corrija se eu estiver errado
ou sгo ? 0.o
Reply
#10

Estб certo. Faltou por 5 e por 7 :P

Cуdigo funcional novamente. Nгo mudou muita coisa continua uma linha...

@off
Tenho que perder a mania de nгo conferir resultados ~/s
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)