2581 소수

Console Programming/C# Console 2019. 12. 3. 10:21

 

using System;

namespace _2581
{
    class Program
    {
        static void Main(string[] args)
        {
            int M = int.Parse(Console.ReadLine());
            int N = int.Parse(Console.ReadLine());
            bool isPrime = false;
            int sum = 0;
            int leastNum=0;
            for(int i=M; i<N+1; i++)
            {                
                for(int j =2; j< i; j++)
                {
                    if(i%j!=0)
                    {
                        //끝까지 진행하면 소수임
                        isPrime = true;
                    }
                    else
                    {
                        //소수가아님
                        isPrime = false;
                        break;
                    }
                }
                if(isPrime)
                {
                    sum += i;
                    if(leastNum!=0)
                    {

                    }
                    else
                    {
                        leastNum = i;
                    }
                }
            }
            if(sum==0)
            {
                Console.WriteLine(-1);
            }
            else
            {
                Console.WriteLine(sum);
                Console.WriteLine(leastNum);
            }          
        }
    }
}

 

break; 를 넣지 않으면 이렇게 된다.

 

제대로 된 실행결과

위의 코드로 채점을 돌렸더니 틀렸다는 결과가 나왔다.

 

다시 한번 살펴보니 숫자 2는 특수한 경우의 소수인데, 이것에 대한 처리를 하지 않았다.

 

 

using System;

namespace _2581
{
    class Program
    {
        static void Main(string[] args)
        {
            int M = int.Parse(Console.ReadLine());
            int N = int.Parse(Console.ReadLine());
            bool isPrime = false;
            int sum = 0;
            int leastNum=0;
            for(int i=M; i<N+1; i++)
            {
                if (i != 2)
                {
                    for (int j = 2; j < i; j++)
                    {

                        if (i % j != 0)
                        {
                            //끝까지 진행하면 소수임
                            isPrime = true;
                        }
                        else
                        {
                            //소수가아님
                            isPrime = false;
                            break;
                        }
                    }
                }
                else
                {
                    isPrime = true;
                }
                if(isPrime)
                {
                    sum += i;
                    if(leastNum!=0)
                    {

                    }
                    else
                    {
                        leastNum = i;
                    }
                }
            }
            if(sum==0)
            {
                Console.WriteLine(-1);
            }
            else
            {
                Console.WriteLine(sum);
                Console.WriteLine(leastNum);
            }          
        }
    }
}

그 뒤에 다시 채점했더니 맞았다는 결과를 받았다.

: