Process is terminated due to StackOverflowException - C# (200944)
Формулировка задачи:
В задачке по рекурсии вылезает вот эта ошибка:Process is terminated due to StackOverflowException. Как можно исправить?
static void prost(long l, long p) { if (l == 0) Console.WriteLine("вы ввели 0"); else if (l == 1) Console.WriteLine("вы ввели 1"); else if (p == 1) Console.WriteLine("число простое"); if (l % p == 0) Console.WriteLine("число не простое"); else prost(l, p - 1); } static void Main(string[] args) { Console.WriteLine(); { Console.WriteLine("введите число"); long x = long.Parse(Console.ReadLine()); prost(x, x - 1); Console.ReadLine();
Решение задачи: «Process is terminated due to StackOverflowException»
textual
Листинг программы
static void Main() { for (int i = 0; i < 10; i++) if (prost(i, 2)) Console.WriteLine("Число {0} простое", i); } static bool prost(long l, long p) { if (l < 2) return false; else if (l == 2) return true; else if (l % p == 0) return false; else { if (p < (long)Math.Sqrt(l)) return prost(l, ++p); else return true; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д