CADDi 2018 for Beginners
昨日はCADDi 2018 for Beginnersに参加したので戦歴めも。
復習が全然できてない…
しっかり復習する時間も予定に組み込まないとダメですね。
A問題
入力された文字列を一個ずつサブストして2の数を数える。
3分半くらいでAC。まだ早くかけるなぁ。
B問題
一定の高さと幅をもつ板の数を数える問題。
for文を回して条件を満たす板を数えて終了。
ここらで11分経過。
C問題
TLEから抜け出せなかった。。。
1からPまで全て調べるようなことをしてるからダメな気がするけど、勉強不足でした。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long N = sc.nextLong(); long P = sc.nextLong(); long num = 1; for (long i = 1; i <= P; i++) { long n = (long) Math.pow(i, N); if (n > P) { break; } if (P % i == 0) { if (P%n == 0) { num = i; } } else { continue; } } System.out.println(num); } }
まだまだ精進します。
追記
これでACでした。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long N = sc.nextLong(); long P = sc.nextLong(); long num = 1; long n = 1; if(N==1) { System.out.println(P); return; } for (long i = 1; n <= P; i++) { if (P%n == 0) { num = i; } n = (long) Math.pow(i+1, N); } System.out.println(num); } }