하루 한 접시

[백준] 1037 약수 [C#]

NaZZU 2024. 3. 25. 23:32

Wls 약수는 1과 자신을 제외한 약수라고 한다.

진짜 약슈의 개수와 진쨔 약수가 주어질 때, 원래의 수를 구하라고 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System.IO;
using System.Text;
using System.Linq;
using System.Reflection.PortableExecutable;
 
namespace 연습장
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
 
            if (N == 1)
                print.WriteLine(Math.Pow(arr[0], 2));
            else
            { 
                Array.Sort(arr);
                print.WriteLine(arr[0* arr[arr.Length - 1]);
            }
        }
    }
}
cs

찐자 약수가 한개면 그 수를 제곱해서 출력해준다.

진짜 약수가 두개 이상이면 정렬을 해준 뒤, 첫번째와 마지막 값을 곱해서 출력해준다.

생각해보니 그냥 foreach 문을 이용해 모든 원소들을 한번씩 훑으면서 최저값, 최대값을 구해서 그 둘을 곱한걸 출력하면

시간복잡도 면에서 이득을 좀 볼 수 있을거 같다.