Liczby pierwsze c#

0

Cześć, mam do rozwiązanie zadanie o treści "Stwórz funkcję bool CzyIstnieje1(int a, int b) , która zwraca true, jeśli w przedziale obustronnie domkniętym [a;b] znajduje się liczba pierwsza. W przeciwnym wypadku funkcja zwraca false."

kod który napisałam nie działa poprawnie, i brakuje mi pomysłu co zrobić żeby program działał poprawnie.

using System;


namespace Zadanie04_1
{
    class Program
    {

        static bool CzyIstnieje1(int a, int b)
        {
            int[] tab = new int[(b - a) + 1];
            int x = 0;
            bool[] tab1 = new bool[tab.Length];
            for (int i = a; i <= b; i++)
            {
                tab[x] = i;
                x++;
            }
            for (int i = 0; i <= tab.Length-1; i++)
            {
                if (tab[i] < 2)
                {
                    tab1[i] = false;
                }
                if (tab[i]%2 ==0)
                {
                    return false;
                }
                for (int j = 2; j <= Math.Sqrt(tab[i]); j++)
                {
                    if (tab[i] % j == 0)
                    {
                        tab1[i] = false;
                    }
                }
                tab1[i] = true;
            }
            for (int i = 0; i < tab1.Length; i++)
            {
                if (tab1[i] == true)
                {
                    return true;
                }
                
            }
            return false;
        }
        static void WyswietlTablice(int[] tab)
        {
            Console.Write("[");
            for (int i = 0; i < tab.Length; i++)
            {
                if (i != tab.Length - 1)
                {
                    Console.Write(tab[i] + ", ");
                }
                else
                {
                    Console.Write(tab[i]);
                }

            }
            Console.Write("]");
            Console.WriteLine();
        }
        static int[] Tablica(int a, int b)
        {
            int[] tab = new int[(b - a) + 1];
            int x = 0;
            //bool[] tab1 = new bool[tab.Length];
            for (int i = a; i <= b; i++)
            {
                tab[x] = i;
                x++;
            }
            return tab;
        }
     
        static void Main(string[] args)
        {
           
            WyswietlTablice( Tablica(8, 10));
            Console.WriteLine(CzyIstnieje1(8, 11));
            Console.ReadKey();
        }
    }
}

4

która zwraca true, jeśli w przedziale obustronnie domkniętym [a;b] znajduje się liczba pierwsza. W przeciwnym wypadku funkcja zwraca false."

nie potrzebujesz zadnej tablicy tutaj

robisz na zasadzie

for(int index = a; index <= b ; index++) 
{
  bool czyPierwsza = SprawdzCzyLiczbaPierwsza(index); // chociaz zamiast bool mozesz uzywac var, dla Twojej klarownosci uzylem bool, jednak powinno sie pisac var
  if (czyPierwsza) return true; // ten warunek jest rownoznaczy z czyPierwsza == true co robi duzo poczatkujacych
}
return false;

1 użytkowników online, w tym zalogowanych: 0, gości: 1