【プログラミングコンテスト】AtCoder Beginner Contest 120②
最近アリ本でアルゴリズムを学習するのにハマってます、ねむーです。
今回はAtCoder(https://atcoder.jp/contests/abc120)にて開催されました、AtCoder Beginner Contest 120の第2回目です。
今回は、第2問「B - K-th Common Divisor」の問題と僕との戦闘記です。
0.はじめに
1.問題文
正整数 A , B が与えられます。
A も B も割り切る正整数のうち、 K 番目に大きいものを求めてください。
なお、与えられる入力では、 A も B も割り切る正整数のうち K 番目に大きいものが存在することが保証されます。
2.初見の感想
- 割り切れるので%演算を使用するのかな?
3.解けなかったので振り返り
- 問題文読み間違えてる…
- 僕はK番目に小さいものを出す問題だと思ってました…(思い込みヨクナイ)
- 方策としては、余りが0の時の判定をするだけで解けそうです
4.全コード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using static System.Console;
class Program
{
static void Main(string[] args)
{
string[] temp = Console.ReadLine().Split(' ');
int A = int.Parse(temp[0]);
int B = int.Parse(temp[1]);
int K = int.Parse(temp[2]);
int a = 0;
for(int i = 100; i >= 1; i--)
{
if (A % i == 0 && B % i == 0)
{
a++;
if (a == K)
{
Console.WriteLine(i);
return;
}
}
}
}
}
5.最後に
問題文を読むのは大事…
思い知らされました…