# Prime Number

## Recommended Posts

Hello,

i wrote a programm that checks if a number is a prime number or not.

```\$zahl = InputBox("Zahl angeben", "Geben Sie an welche Zahl zu überprüfen ist.")
If \$zahl = 3 Then
MsgBox(0, "", "Primzahl")
ElseIf \$zahl = 5 Then
MsgBox(0, "", "Primzahl")
ElseIf \$zahl = 7 Then
MsgBox(0, "", "Primzahl")
ElseIf \$zahl = 529 Then
MsgBox(0,"", "Keine Primzahl")
Else
\$I_Result = _MathCheckDiv(\$zahl, 2)
If \$I_Result = 2 Then
MsgBox(0,'','Keine Primzahl')
Else
\$I_Result = _MathCheckDiv(\$zahl, 3)
If \$I_Result = 2 Then
Msgbox(0, "", "Keine Primzahl")
Else
\$I_Result = _MathCheckDiv(\$zahl, 5)
If \$I_Result = 2 Then
Msgbox(0, "", "Keine Primzahl")
Else
\$I_Result = _MathCheckDiv(\$zahl, 7)
If \$I_Result = 2 Then
Msgbox(0, "", "Keine Primzahl")
Else
Msgbox(0, "", "Primzahl")
EndIf
EndIf
EndIf
EndIf
EndIf```

If you have ideas to improve it, just tell me

Edited by Daniel W.

--------------------------------------------------------------------------------------------------------------------------------Scripts : _Encrypt UDF_UniquePCCode UDF MS like calculatorInstall programm *UPDATED* --------------------------------------------------------------------------------------------------------------------------------[quote name='Helge' post='213117' date='Jul 26 2006, 10:22 AM']Have you ever tried surfing the internet with a milk-carton ?This is similar to what you're trying to do.[/quote]

##### Share on other sites

Hmmm i suppose its just a coincidence you posted this after i posted my prime number thing lol

My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop.

##### Share on other sites

Our codes do the same or?

Cuz they are different in whole way

--------------------------------------------------------------------------------------------------------------------------------Scripts : _Encrypt UDF_UniquePCCode UDF MS like calculatorInstall programm *UPDATED* --------------------------------------------------------------------------------------------------------------------------------[quote name='Helge' post='213117' date='Jul 26 2006, 10:22 AM']Have you ever tried surfing the internet with a milk-carton ?This is similar to what you're trying to do.[/quote]

##### Share on other sites

It appears that both our original ideas don't work. Try testing 529 (23*23) it says it is prime which it isn't as Wus told me in my thread. I have come up with this

```;===============================================================================
;
; Function Name:   _IsPrime
; Description:: Check if a number is prime or not
; Parameter(s): \$i_num - Number to check
; Requirement(s):  Math.au3
; Return Value(s): 1 - Number is prime
;                  0 - Number is not prime
; Author(s):       RazerM
;
;===============================================================================
;
Func _IsPrime(\$i_num)
If \$i_num > 3 Then
If Mod(\$i_num, 2) = 0 Then Return 0
If Mod(\$i_num, 3) = 0 Then Return 0
EndIf
Dim \$divisor, \$increment, \$maxdivisor
\$divisor = 5
\$increment = 2
\$maxdivisor = Sqrt(\$i_num) + 1

Do
If Mod(\$i_num, \$divisor) = 0 Then Return 0
\$divisor = \$divisor + \$increment
\$increment = 6 - \$increment
Until \$divisor > \$maxdivisor
Return 1
EndFunc```
which works better but says 5 isnt prime (any ideas?)

My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop.

##### Share on other sites

I updated mine a bit for 529 and those numbers that havn't worked but dunno why yours is not working. Maybe because 5 is standart divisor?????? Just an idea

Edited by Daniel W.

--------------------------------------------------------------------------------------------------------------------------------Scripts : _Encrypt UDF_UniquePCCode UDF MS like calculatorInstall programm *UPDATED* --------------------------------------------------------------------------------------------------------------------------------[quote name='Helge' post='213117' date='Jul 26 2006, 10:22 AM']Have you ever tried surfing the internet with a milk-carton ?This is similar to what you're trying to do.[/quote]

##### Share on other sites

```Func _IsPrime(\$iNum)
\$iNum=Abs(\$iNum)
Local \$iMax = \$iNum, \$iDiv = 2, \$fDiv = 0
While Not \$fDiv And \$iDiv < \$iMax
\$iMax = Int(\$iNum/\$iDiv)
\$fDiv = \$iMax = \$iNum/\$iDiv
\$iDiv += 1
WEnd
Return \$fDiv = 0
EndFunc```

Or, use the sqrt as RazorM did:

```Func _IsPrime(\$iNum)
\$iNum=Abs(\$iNum)
Local \$iMax = Sqrt(\$iNum) + 1, \$iDiv = 2, \$fDiv = 0, \$iTemp
While Not \$fDiv And \$iDiv < \$iMax
\$iTemp = \$iNum/\$iDiv
\$fDiv = Int(\$iTemp) = \$iTemp
\$iDiv += 1
WEnd
Return \$fDiv = 0
EndFunc```
Edited by blindwig

## Create an account

Register a new account

×

• Wiki

• Back

• Git