Untitled
unknown
plain_text
3 years ago
4.0 kB
8
Indexable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Cwiczenie10
{
class Program
{
public static bool CzyPierwsza(int x)
{
if (x <= 1) return false; // nie jest pierwsza
if (x == 2) return true; // jest pierwsza
if (x % 2 == 0) return false; // nie jest pierwsza
int temp = (int)Math.Floor(Math.Sqrt(x));
for (int i = 3; i <= temp; i += 2)
if (x % i == 0)
return false;
return true;
}
static void SegmentacjaTablic(ref int[] t1, ref int[] t2)
{
int licznik_pierwsze = 0, licznik_reszta = 0;
// sprawdzanie ilosci liczb pierwszych i pozostalych w tablicy t1
for (int i = 0; i < t1.Length; i++)
{
if (CzyPierwsza(t1[i])){
licznik_pierwsze++;
}
else
{
licznik_reszta++;
}
}
// sprawdzanie ilosci liczb pierwszych i pozostalych w tablicy t2
for (int i = 0; i < t2.Length; i++)
{
if (CzyPierwsza(t2[i]))
{
licznik_pierwsze++;
}
else
{
licznik_reszta++;
}
}
Console.WriteLine("Licznik pierwsze: " + licznik_pierwsze + "; licznik reszta: " + licznik_reszta);
int[] pierwsze = new int[licznik_pierwsze];
int[] reszta = new int[licznik_reszta];
int indeks_do_tablicy_pierwsze = 0, indeks_do_tablicy_reszta = 0;
// uzupelnienie tab pierwsze i reszta wartosciami z t1
for (int i = 0; i < t1.Length; i++)
{
if (CzyPierwsza(t1[i]))
{
pierwsze[indeks_do_tablicy_pierwsze] = t1[i];
indeks_do_tablicy_pierwsze++;
}
else
{
reszta[indeks_do_tablicy_reszta] = t1[i];
indeks_do_tablicy_reszta++;
}
}
// uzupelnienie tab pierwsze i reszta wartosciami z t2
for (int i = 0; i < t1.Length; i++)
{
if (CzyPierwsza(t2[i]))
{
pierwsze[indeks_do_tablicy_pierwsze] = t2[i];
indeks_do_tablicy_pierwsze++;
}
else
{
reszta[indeks_do_tablicy_reszta] = t2[i];
indeks_do_tablicy_reszta++;
}
}
t1 = pierwsze;
t2 = reszta;
}
static void Main(string[] args)
{
int[] t1 = new int[] { 4, 3, 5, 6, 8, 9, 14 };
int[] t2 = new int[] { 8, 9, 10, 4, 3, 9, 11 };
Console.Write("Tablice przed segregacją. \nTablica pierwsza: ");
for (int i = 0; i < t1.Length; i++)
Console.Write(t1[i] + " ");
Console.Write("\nTablica druga: ");
for (int i = 0; i < t2.Length; i++)
Console.Write(t2[i] + " ");
Console.WriteLine();
Console.WriteLine("Tablice po segregacji: ");
SegmentacjaTablic(ref t1, ref t2);
Console.WriteLine("\nTablica liczb pierwszych");
for (int i = 0; i < t1.Length; i++)
Console.Write(t1[i] + " ");
Console.WriteLine("\nTablica pozostałych liczb: ");
for (int i = 0; i < t2.Length; i++)
Console.Write(t2[i] + " ");
Console.ReadKey();
}
}
}
Editor is loading...