Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Coding puzzle 3
Message
 
 
À
06/06/2002 07:57:20
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivie
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Titre:
Divers
Thread ID:
00665235
Message ID:
00665406
Vues:
31
>>I meant prime numbers, just didn't know the correct term. E.g. each number has only two dividors (1 and itself).
>>
>>1
>>2
>>3
>>5
>>7
>>11
>>13
>>etc.
>
>It is convenient to have a UDF that returns .T. if the input is a prime number.
>
>An algorithm that is reasonable in terms of speed and simplicity, for numbers up to several millions, is:
>
>Divide input by 2
>
>Divide input by all odd numbers, from 3 to sqrt(input)
>
>Return .F. immediately if any of the divisions gives no remainder.
>
>You can then search for each prime number with a loop, also starting at 2, and then:
>
>
>for i = 3 to MaxRange step 3
>  if not seek(i) and IsPrime(i)
>    insert into...
>  endif
>next
>
>
>Hilmar.

Hi Hilmar,

I don't think, your method would be the most efficient. I was thinking about this problem a little bit, and here is a draft idea:

Say, we have a table with N prime numbers in sequence (should not be any ommissions in this table). To define, if the number is prime or not, we can try to divide this number by each of the known prime numbers up till the squar root of the number. If this number would be prime, we would insert it into this Lookup Prime numbers table. However, I'm not yet convinced, that this one is the best algorithm...
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform