Loading...
BraveHamster avatar BraveHamster 37 Точки

[Prog.Basics] Prime Checker - програмката ми увисва с един конкретен инпут и не мога да разбера защо

6737626471 е числото, при което програмката ми увисва.Judge-a също показва часовниче за този инпут... 

Странното е, че при инпут 117342557809 си минава както трябва. 

 

Това е условието : Write a Boolean method IsPrime(n) that check whether a given integer number n is prime. Examples:

 

Това е кодът ми:

 

using System;

namespace PrimeChecker
{
    class Program
    {
        static void Main(string[] args)
        {

            long input = long.Parse(Console.ReadLine());

            
            Console.WriteLine(IsPrime(input));
            

            
            
        }

        private static bool IsPrime(long n)
        {
            if (n<2)
            {
                return false;
            }

            for (int i = 2; i <= n/2; i++)
            {
                if (n%i==0)
                {
                    return false;
                }
            }

            return true;
        }
    }
}
 

 

Някакви идеи ? 

Тагове:
0
Programming Basics
vladimir.st.radoslavov avatar vladimir.st.radoslavov 29 Точки
Best Answer

Програмата си върши работата не забива, числото  6737626471 е просто и по този алгоритъм провреката изисква много време ... по бързо става ако се сравнява до корен квадратен от числото ...

2
annsta avatar annsta 305 Точки

Промени цикъла за проверка в метода и тестът ще минава без проблем:

for (int i = 2; i <= Math.Sqrt(n); i++)

 

4
elena.nikolova2 avatar elena.nikolova2 63 Точки

Ама така пък 117342557809  не минава, пробвай с for (int i = 2; i <= 2*Math.Sqrt(n); i++)

1
23/05/2016 12:37:45
BraveHamster avatar BraveHamster 37 Точки

Много благодаря, Владимир и Анна ! 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.