using System;
public class Program
{
public static void Main()
/*Primtal. Gör ett program som skriver ut de första 1000 primtalen. För att snabbare testa primtal så behöver man bara testa delbarhet (modulus) med tidigare primtal, upp till roten ur det tal man vill testa.
Börja med en tom array (eller med bara första primtalet (2) ifyllt). Fyll på den med varje nytt primtal du hittar. Samma lista kan du hela tiden använda för att testa nya tal mot.
De första och sista primtalen du borde hitta är:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53.... 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, och det tusende primtalet är 7919.*/
/*En loop som går igenom alla tal upp till 7919^2
En loop som loopar
*/
int[]primtal=new int[1000];
int antalprimtal=0;
for(int i=2;i<7919*7919;i++)//börjar på två då ett sägs inte vara ett primtal dock att det uppfyller kraven för det
if(KontrollPrimtal(i,primtal))
primtal[antalprimtal]=i; //att arrayen ändras här syns även i metoden KontrollPrimtal
antalprimtal++;
}
if(antalprimtal==1000)//för att de 1000 första primtalen ska skrivas ut
break;
for(int i=0;i<1000;i++)
Console.Write(primtal[i]+", ");
public static bool KontrollPrimtal(int tal, int[] Primtal)
if(tal==2) //för att det i den andra if-satsen hade blivit division med 0 om man inte gav primtal[0] ett värde
return true;
if(Primtal[i]>Math.Sqrt(tal)) //för att det bara behöver undersökas upp till primtal som är mindre än roten ur talet
if(tal%Primtal[i]==0) //kontrollerar svaret vid division av primtalen som sparats i arrayen
return false;