I don't know why this takes forever for big numbers I'm trying to solve Problem 10 in Project Euler (https://projecteuler.net/problem=10). Can someone help me please?
It finds the first prime number and crosses all its factors, Then moves on to the next prime number and so on.
long sum=0;
        int howmanyChecked = 1;
        int target = 1000000;
        int index = -1;
        List<int> numbers = new List<int>(target);
        List<bool> Isprime = new List<bool>(target);
        for(int i=2;i<=target;i++)
        {
            numbers.Add(i);
            Isprime.Add(true);
        }
        while (1 > 0)
        {
            index = Isprime.IndexOf(true, index + 1);
            int Selected = numbers[index];
            howmanyChecked++;
            sum += Selected;
            //Console.WriteLine($"selected prime number is {Selected}");
            //int startfrom =numbers.IndexOf(Selected * Selected);
            if (Selected >= target / 2)
            {
                Console.WriteLine("ss");
                for(int i=index+1;i<target-1;i++)
                {
                    if(Isprime[i]==true)
                    {
                        Console.WriteLine(numbers[i].ToString());
                        sum += numbers[i];
                    }
                }
                Console.WriteLine($"the sum of all prime nubers below {target} is {sum} tap to continue");
                Console.ReadLine();
                break;
            }
            else
            {
                for (int i = Selected; i * Selected <= target; i++)
                {
                    int k = numbers.IndexOf(i * Selected);
                    if (k == -1)
                        break;
                    if (Isprime[k] == true)
                    {
                        Isprime[numbers.IndexOf(i * Selected)] = false;
                        howmanyChecked++;
                        //Console.WriteLine($"Checked number is {Selected * i} and we have counted {howmanyChecked} numbers");
                    }
                }
            }
            if (howmanyChecked == target || index==target)
                break;
            
        }
        Console.ReadLine();