Language

·Language/C#
[ 문제 ] 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. [ 코드 ] using System.Text; while (true) { List arr = new List(); StringBuilder sb = new StringBuilder(); int n = int.Parse(Console.ReadLine()); if (n == -1) break; for (int i = 1; i < n; i++) { if(n % i == 0) { arr.Add(i); if(i == arr.First()) { sb.Append($"{n} = {i}"); } else { ..
·Language/C#
[ 문제 ] 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. [ 코드 ] - 1. 입력값의 중심을 기준으로 왼쪽과 오른쪽을 비교해서 같으면 yes, 그렇지 않으면 no while (true) { string n = Console.ReadLine(); bool..
·Language/C#
[ 문제 ] 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. [ 코드 ] string[] s = Console.ReadLine().Split(); int N = int.Parse(s[0]); int M = int.Parse(s[1]); List arr = new List(); for (int i = 1; i
·Language/C#
[ 문제 ] 4 × 3 = 12이다. 이 식을 통해 다음과 같은 사실을 알 수 있다. 3은 12의 약수이고, 12는 3의 배수이다. 4도 12의 약수이고, 12는 4의 배수이다. 두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오. 1. 첫 번째 숫자가 두 번째 숫자의 약수이다. 2. 첫 번째 숫자가 두 번째 숫자의 배수이다. 3. 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다. [ 코드 ] while (true) { string[] s = Console.ReadLine().Split(); int N = int.Parse(s[0]); int M = int.Parse(s[1]); if (N == 0 && M == 0) break; if(M % N == 0) { Co..
·Language/C#
[ 문제 ] 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. [ 코드 ] string[] s = Console.ReadLine().Split(); int A = int.Parse(s[0]); int B = int.Parse(s[1]); int V = int.Parse(s[2]); int days = (V - B - 1) / (A - B) + 1; Console.Write(days); [ 코드 ] - 시간초과코드 string[] s = Console.Re..
·Language/C#
[ 문제 ] 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. [ 코드 ] using System.Numerics; BigInteger n = BigInteger.Parse(Console.ReadLine()); BigInteger a = 1; // 벌집 개수 int b = 1; //벌집 라인 while(n > a) { a += 6 * b; b++; } Con..
석영
'Language' 카테고리의 글 목록 (27 Page)