![]() |
Ejercicio- numero primo
me marcaron este ejercicio:
Realiza un programa que lea un número entero y escriba si es o no numero primo. ¿alguna sugerencia? ¿hay varias formas para resolverlo? ya intente de todo no le encuentro la manera. soy noob jaja |
|
Realiza un ejercicio se refiere a tí, por lo tanto no te lo voy a hacer, entre otras cosas porque no aprenderías nada, pero te voy a dar unas pautas que funcionan y que hacen que la búsqueda sea rápida incluso para números grandes (de 9 cifras por ejemplo)
//parece ser que si un número no es divisible entre los primos //del 1 al 3361 (son 475 primos) es seguro que es primo, por lo //que para comprobar si es primo no es necesario dividirle //entre todos los números menores que él, basta con dividirle //entre los 475 primeros primos y si no es divisible entre //ninguno de ellos el número es seguro que es primo Por lo tanto //coger en un array de 475 elementos los primos del 1 al 3361 //recorres números de 1 al 3361 (solo impares, los pares no son primos) con un bucle //les vas dividiendo entre sus menores (usa mod para ver si da exacto) para ver si son o no primos //esto lo debes saber, si en alguna operación te da resto 0 ya no es primo //el que sea primo le vas guardando en el array y así lo llenaras con los 475 primeros primos Despues comprobamos el número Le vas dividiendo entre los primos guardados en el array (usa mod) si hay alguna división de resto 0 no es primo en caso contraio si. |
Hola Laurogriffin.
Como ya te comentó mi amigo Caral es un tema muy trillado y darte el código funcionando, no te va a ayudar en nada como bién menciona fidel (que también expuso un modo muy interesante). Te agrego otras pautas que tal vez te ayuden: La forma más sencilla (y la más lenta) es probar de dividir el número a evaluar (N) por todos los números (i) menores que él , exépto la unidad, es decir: i desde 2 hasta N-1. Si ninguno lo divide exáctamente, es primo. Este método se puede mejorar, el mayor divisor distinto de N es N/2 y si N/2 es divisor de N también lo es 2, el siguiente divisor mas grande es N/3 ..., ... , y siguiendo la analogía, hasta que N/i = i, es decir N = i², por lo que basta con dividir a N hasta que i = √N. También te puede interesar este tema: Criba de Eratóstenes Saludos. |
La franja horaria es GMT +2. Ahora son las 04:46:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi