//5086
두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.
- 첫 번째 숫자가 두 번째 숫자의 약수이다.
- 첫 번째 숫자가 두 번째 숫자의 배수이다.
- 첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.
using System.Diagnostics;
int[] input() => Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
int[] i;
while(true)
{
i = input();
if (i[0] == 0 && i[1] == 0)
return;
else
{
if ((i[0] % i[1] == 0)) Console.WriteLine("multiple");
else if ((i[1] % i[0] == 0)) Console.WriteLine("factor");
else Console.WriteLine("neither");
}
}
int[] t;
while ((t = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse)).Sum() != 0)
{
int a = t[0], b = t[1];
Console.WriteLine(b % a == 0 ? "factor" : a % b == 0 ? "multiple" : "neither");
}
//2501
두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.
int[] i = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
List<int> answers = new List<int>();
for (int j = 1; j <= i[0]; j++)
{
if (i[0] % j == 0)
answers.Add(j);
}
if (answers.Count < (i[1])) Console.WriteLine(0);
else Console.WriteLine(answers[i[1] - 1]);
//9506
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다.
예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다.
n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
int x() => int.Parse(Console.ReadLine());
int num = 0;
int answer = 0;
List<int> list = new List<int>();
while ((num = x()) != -1)
{
for(int i = 1; i < num; i++)
{
if(num % i == 0)
list.Add(i);
}
foreach (int n in list)
answer += n;
if (answer == num) Console.WriteLine($"{num} = "+string.Join(" + ", list));
else Console.WriteLine($"{num} is NOT perfect.");
list.Clear();
answer = 0;
}
//1978
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
Console.ReadLine();
int[] n = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
int o = 0;
bool b;
foreach (int i in n)
{
b = true;
for (int j = i / 2; j > 1; j--) { if (i % j == 0) b = false; }
if (b & i != 1) o++;
}
Console.Write(o);
//2581
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.
예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.
int min = int.Parse(Console.ReadLine());
int max = int.Parse(Console.ReadLine());
bool b;
List<int> list = new List<int>();
for(int i = min; i <= max; i++)
{
b = true;
for (int j = i / 2; j > 1; j--) { if (i % j == 0) b = false; }
if (b & i != 1) list.Add(i);
}
if (list.Count <= 0) Console.WriteLine(-1);
else
{
list.Sort();
Console.WriteLine($"{list.Sum()}");
Console.WriteLine($"{list[0]}");
}
//11653
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
int input = int.Parse(Console.ReadLine());
if (input == 1) Console.WriteLine("");
else
{
for(int i = 2; i < input + 1; i++)
while((input % i) == 0)
{
Console.WriteLine(i);
input /= i;
}
}
'코딩 공부 > C#-코딩테스트' 카테고리의 다른 글
(백준/C#) 2차원 배열 (0) | 2024.09.30 |
---|---|
(백준/C#) 일반 수학 1 (0) | 2024.09.24 |
(백준/C#) 심화 1 (0) | 2024.09.23 |
(백준/C#) 문자열 (0) | 2024.09.09 |
(백준/C#) 1차원 배열 (0) | 2024.08.19 |