結果
問題 | No.144 エラトステネスのざる |
ユーザー |
![]() |
提出日時 | 2020-01-26 15:50:58 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 211 ms / 2,000 ms |
コード長 | 2,210 bytes |
コンパイル時間 | 2,562 ms |
コンパイル使用メモリ | 78,744 KB |
実行使用メモリ | 45,800 KB |
最終ジャッジ日時 | 2024-09-14 11:05:06 |
合計ジャッジ時間 | 6,530 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
import static java.util.Comparator.comparing;import java.io.InputStream;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.PriorityQueue;import java.util.Scanner;public class Main {public static void main(String[] args) {PrintWriter out = new PrintWriter(System.out);Solver solver = new Solver(System.in, out);solver.solve();out.close();}}class Solver {Scanner sc;PrintWriter out;public Solver(InputStream in, PrintWriter out) {sc = new Scanner(in);this.out = out;}// ==========================================================public void solve() {int N = ni();double p = 1 - sc.nextDouble();int[] cnt = new int[N+1];double ans = 0;for (int i = 2; i <= N; i++) {for (int j = i; j <= N; j += i) {cnt[j]++;}ans += Math.pow(p, cnt[i]-1);// out.println("ans = " + ans + " cnt[" + i + "] = " + cnt[i]);}out.println(ans);}// ------------------------------------------// 入力// ------------------------------------------public int ni() {return sc.nextInt();}public long nl() {return sc.nextLong();}public String ns() {return sc.next();}public char[] nc() {return sc.next().toCharArray();}public int[] ndi(int N) {int[] ans = new int[N];for (int i = 0; i < N; i++) {ans[i] = ni();}return ans;}public long[] ndl(int N) {long[] ans = new long[N];for (int i = 0; i < N; i++) {ans[i] = nl();}return ans;}public String[] nds(int N) {String[] ans = new String[N];for (int i = 0; i < N; i++) {ans[i] = ns();}return ans;}public char[][] ndc(int N) {char[][] ans = new char[N][];for (int i = 0; i < N; i++) {ans[i] = nc();}return ans;}public int[][] nddi(int N, int S) {int[][] ans = new int[N][S];for (int i = 0; i < N; i++) {for (int j = 0; j < S; j++) {ans[i][j] = ni();}}return ans;}}