# IsPrimeNumber() - Is a number a prime number

## Recommended Posts

```#region Required project assemblies

using System;

#endregion

{
internal class Program
{
private static bool IsPrimeNumber(int number, out int divisibleBy)
{
divisibleBy = -1; // Set the out parameter as -1, for those numbers which are prime values.
if (number <= 1)
{
return false; // Return false if the value is less than or equal to one.
}

for (int i = 2; i <= Math.Sqrt(number); i++)
{
if (number % i == 0)
{
divisibleBy = i; // Set the out param as the divisible by value.
return false;
}
}
return true; // This means it's a prime number.
}

private static void Main()
{
int userChoice;
do
{
Console.Write("Please enter an integer number to see if it's a prime number: ");
Console.WriteLine(); // New line.
} while (userChoice <= 0);

int numberDivisible;
{
Console.WriteLine("Your number is a prime value.");
}
else
{
if (numberDivisible == -1)
{
Console.WriteLine("Your number is NOT regarded as a prime value.");
}
else
{
Console.WriteLine("Your number is NOT a prime value as it's divisible by {0}.", numberDivisible);
}
}
Console.WriteLine(); // New line.

Console.WriteLine("Press any key to continue . . .");
}
}
}```

Edited by Jon
Changed language
##### Share on other sites
• 2 weeks later...

Once you've tested 2, you don't need to test for divisibility by any other even numbers. That means for most numbers you effectively halve the modulus operations needed, so should halve the runtime.

Finding primes is always a very interesting problem. I've spent a fair bit of time on it over the years. Most recently I wrote this piece of gibberish which makes a huge prime sieve, for all the numbers from 0 to 0xFFFFFFFF, and counts the number of primes. The bitmap for the sieve is 256MB, and I meant to try and find out how programs work that unload ranges of data to/from disk efficiently so I could work on a bigger range but never got round to it.

## Create an account

Register a new account

• ### Similar Content

• ...trying to get the MonthCal font size, given that when loading it ( GUICtrlCreateMonthCal() ), this Win32 control has the font size auto-adjusted by the OS and working with display scaling, getting the font that is visually congruent, getting this value should make it the perfect font size for my GUI.
My question is how to get this ( https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.monthcalendar.size?view=windowsdesktop-6.0 ) working from within AutoIt3.
This should work in any PC given that the .NET supports this call in every version of .NET
Thanks. ( I have no clue of C# or .NET )
• By Skeletor
Hi All,
So I was searching through the internet and found a plethora of information to learn C#.
However, some are way below par and does not explain very well.

So, anyone can suggest a proper website or eBook or video course explaining C#?

I've learnt AutoIt (still I'm learning it) by making small programs, reading the forums, going through the F1 guide (huge help, seriously this helps alot) and reading the Wiki.
Any direction would be appreciated, just not off the edge of a cliff..

• Hi AutoIt programmers, excuse me for bothering you with multiple topics.

In AutoIt we can use Number() function to convert Hex string to number but it's output is different of C# output & and i wanna make it's output like AutoIt code.

For e.g I use this in AutoIt:
Local \$dBinary = Binary("Hello") ; Create binary data from a string. Local \$dExtract = Number(BinaryMid(\$dBinary, 1, 5)) ConsoleWrite(\$dExtract & @CRLF) And i use this for C#:
using System; using System.Text; //NameSpace Is Use of Project Name namespace TEST { class Program { public static void Main(string[] args) { //declaring a variable and assigning hex value string dd = ToHex("Hello", Encoding.ASCII); decimal d = Int64.Parse(dd, System.Globalization.NumberStyles.HexNumber); Console.WriteLine("Result: " + d); //hit ENTER to exit Console.ReadLine(); } public static string ToHex(string sInput, Encoding oEncoding, bool b0x_Prefix = false) { byte[] a_binaryOutput = oEncoding.GetBytes(sInput); string sOutput = BitConverter.ToString(a_binaryOutput).Replace("-", ""); if (b0x_Prefix == false) { return sOutput; } else { return "0x" + sOutput; } } } }
I say once again that excuse me for creating new topic, in fact i'm making a library for GAuthOTP from a topic in AutoIt.

• I didn't like the search time of Simple Native Image Search, and being on windows 10 64bit, I couldn't get ImageSearchDll.dll to work properly.
So I started researching image search routines and found this excellent post and set of replies find-a-bitmap-within-another-bitmap.

I really liked the pattern that the Simple Native Image Search used, the clipboard usage and the method of searching. Although I think it could be improved by using some short circuit techniques to return sooner, like consecutive matched > 65% return | matched total > 85% return) , and I wanted the function to manage the click on the found image as well.
So I just did a bit more research and a few trips to MSDN and stackoverflow, these two snippets allow me to replicate KyleJustKnows code, and click.  Another feature is that it also saves the image it captures to disk, so that if the image is not found you can check what was captured, and alternatively cut out a new search image to use.
private void PrintScreen() { keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0); } public Bitmap CaptureScreenPrtSc() { PrintScreen(); if (Clipboard.ContainsImage()) { using (Image img = Clipboard.GetImage()) { img.Save("ClipBoard.PNG", ImageFormat.Png); return new Bitmap(img); } } return default; } [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool GetCursorPos(out MousePoint lpMousePoint); [DllImport("user32.dll")] private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); private MousePoint GetCursorPosition() { var gotPoint = GetCursorPos(out MousePoint currentMousePoint); if (!gotPoint) { currentMousePoint = new MousePoint(0, 0); } return currentMousePoint; } private void MouseEvent(MouseEvents value) { MousePoint position = GetCursorPosition(); mouse_event ((int)value, position.X, position.Y, 0, 0) ; }
So after managing to compile the dll with COM support, with much reading of this forum and many posts from paulpmeier, ptrex, LarsJ, and others about loading .net, I managed to get this all working.

Here is the BotIt Core:
; BotIt Core Global \$sPath = "BotIt.dll" Global \$RegAsmPath = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" Func BotIt_StartUp() RegisterBotIt() OnAutoItExitRegister("UnregisterBotIt") EndFunc ;==>BotIt_StartUp Func RegisterBotIt() RunWait(\$RegAsmPath & " /register /codebase /tlb " & \$sPath, @ScriptDir, @SW_HIDE) EndFunc ;==>RegisterBotIt Func UnregisterBotIt() FileDelete("Step.txt") RunWait(\$RegAsmPath & " /unregister " & \$sPath, @ScriptDir, @SW_HIDE) EndFunc ;==>UnregisterBotIt Func ActivateAndSearch(\$sTitle, \$sImgPath, \$bClick = True) WinActivate(\$sTitle) Sleep(1000) \$oBotIt = ObjCreate("BotIt.DetectImageAndClick") ConsoleWrite(\$sImgPath & @CRLF & \$bClick & @CRLF) \$bRet = \$oBotIt.FindAndClick(\$sImgPath, \$bClick) Return \$bRet EndFunc ;==>ActivateAndSearch
Usage:
Do Sleep(500) Until ActivateAndSearch("Window Title", "PathToFile")

I hope you enjoy!
Regards,
ScrapeYourself

BotIt.cs

• Hi all,
I have a problem to handle the controls of an application.
Using AutoIT Windows Tool I can get only the Window (see Summary of the picture).
Any tips to get the controls without knowing the name?
(PS Using TestStack.White everything works, however I want the HIDE application feature of AutoIT).

Many thanks

×

• Wiki

• Back

• #### Beta

• Git
• FAQ
×
• Create New...