nu er jeg ikke nogen særlig garvet c# programmør..kan i ikke komme med et så simpelt som muligt eksempel på fx max = 100 (primtal til 100) i et simpelt konsolvindue !
namespace e653068 { class Class1 { [STAThread] static void Main(string[] args) { ArrayList Primtal = new ArrayList();
Primtal.Add(2); // 2 er et primtal.
// Vi løber igennem de mulige primtal, og springer samtlige de lige tal over. for (int MuligtPrimtal=3; MuligtPrimtal<=100; MuligtPrimtal+=2) { // Tallet er et primtal indtil det modsatte er bevist. bool ErEtPrimtal = true;
// Hvis tallet ikke er et primtal, må mindst en af dividenderne // være mindre end kvadratroden af tallet. Der er derfor ikke nogen // grund til at undersøge dividender, som er større end kvadratroden. int MaksDividend = (int) Math.Floor(Math.Sqrt(MuligtPrimtal));
// Når vi tjekker de mulige dividender, er det ikke nødvendigt at // teste for andet end primtal-dividender. Desuden kan vi springe // primtallet 2 over idet tallet - pga. den ydre løkke - altid er ulige. for (int PrimtalIdx=1; PrimtalIdx<Primtal.Count; PrimtalIdx++) { // Tjek for denne dividend. int Dividend = (int) Primtal[PrimtalIdx];
// Hvis den er større end MaksDividend er der ingen grund til // at fortsætte løkken. if (Dividend > MaksDividend) break;
// Går dividenden op i tallet? if (MuligtPrimtal % Dividend == 0) { ErEtPrimtal = false; // Ja! Dermed er tallet ikke et primtal. break; // ... og der er ingen grund til at fortsætte løkken. } }
// Hvis tallet kom helskinnet igennem løkken er det et primtal. if (ErEtPrimtal) Primtal.Add(MuligtPrimtal); }
// Udskriv de fundne primtal. foreach (int EtPrimtal in Primtal) { Console.WriteLine(EtPrimtal); } } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.