結果
問題 | No.826 連絡網 |
ユーザー |
![]() |
提出日時 | 2019-12-18 17:23:54 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 816 ms / 2,000 ms |
コード長 | 1,356 bytes |
コンパイル時間 | 1,775 ms |
コンパイル使用メモリ | 78,336 KB |
実行使用メモリ | 129,248 KB |
最終ジャッジ日時 | 2024-07-06 15:09:47 |
合計ジャッジ時間 | 12,197 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 |
ソースコード
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] first = br.readLine().split(" ", 2); int n = Integer.parseInt(first[0]); int p = Integer.parseInt(first[1]); TreeSet<Integer> prime = new TreeSet<>(); for (int i = 2; i <= Math.sqrt(p); i++) { while (p % i == 0) { prime.add(i); p /= i; } } if (p != 1) { prime.add(p); } int x = prime.first(); for (int i = 2; i * x <= n; i++) { if (isPrime(i)) { prime.add(i); } } x = prime.first(); for (int i = 2; i * x <= n; i++) { if (isPrime(i)) { prime.add(i); } } HashSet<Integer> set = new HashSet<>(); for (int y : prime) { for (int i = 1; i * y <= n; i++) { set.add(i * y); } } System.out.println(set.size()); } static boolean isPrime(int x) { for (int i = 2; i <= Math.sqrt(x); i++) { if (x % i == 0) { return false; } } return true; } }