Witam,napisałem program który sprawdza czy dana liczba jest liczbą pierwszą.Algorytm oparty jest na teście pierwszości.Program ten zawiera metodę błędu czyli jak np wpiszemy liczbe ujemną to powinien wyswietlić "Podałeś liczbe ujemną" lecz niestety wypisuje to i również ją liczy ,a nie powinien.Przechodzi jakby przez 2 warunki.Jestem początkujący i nie wiem co zrobiłem źle,pewnie jest to mały błąd ale nie potrafie sobie z tym poradzić,proszę o pomoc.Pozdrawiam
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
long a = 1, k = 0, n = 0;
byte b = 0;
string wybor = "Tak";
do
{
try
{
Console.Write("Podaj liczbe: ");
wybor = Console.ReadLine();
n = Int32.Parse(wybor);
k = 0;
a = 1;
if (n >= 3)
{
do
{
a++;
if (n % a == 0) k++;
} while (a != n - 1);
}
else
if (n == 2) k = 0;
if (n == 1 || n == 0) Console.Write("1 i 0 nie sa liczbami pierwszymi ani zlozonymi.");
if (k > 0) Console.Write("Podana liczba jest liczba zlozona.");
if (k == 0 && n != 0 && n != 1) Console.Write("Podana liczba jest licza pierwsza.");
}
catch (Exception ex)
{
Console.Write("#Niepoprawna wartosc! ");
}
{
if (n < 0) Console.Write("Podałes liczbe ujemna!");
}
try
{
Console.Write("Sprobowac ponownie? (y/n): ");
wybor = Console.ReadLine();
}
catch (Exception ex)
{
Console.Write("#Niepoprawna wartosc!");
}
} while (wybor != "n");
}
}
}
1) - tagi < code>, 2) - nie krzycz w temacie - msm