結果
| 問題 | No.211 素数サイコロと合成数サイコロ (1) |
| コンテスト | |
| ユーザー |
qwewe
|
| 提出日時 | 2025-05-14 12:59:48 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
MLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 2,610 bytes |
| 記録 | |
| コンパイル時間 | 230 ms |
| コンパイル使用メモリ | 95,336 KB |
| 実行使用メモリ | 78,464 KB |
| 最終ジャッジ日時 | 2026-07-10 15:33:59 |
| 合計ジャッジ時間 | 3,847 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | MLE * 33 |
ソースコード
# -*- coding: utf-8 -*-
import sys
# Function to read a single integer from standard input
def get_int():
"""Reads a line from stdin, removes leading/trailing whitespace, and converts it to an integer."""
return int(sys.stdin.readline().strip())
# Main function containing the problem-solving logic
def solve():
"""Solves the Prime and Composite Dice problem."""
# Read the target product K from input
k = get_int()
# Define the faces of the prime die (素数サイコロ)
# These are the first 6 prime numbers.
prime_faces = [2, 3, 5, 7, 11, 13]
# Define the faces of the composite die (合成数サイコロ)
# These are the first 6 composite numbers greater than 1.
composite_faces = [4, 6, 8, 9, 10, 12]
# Initialize a counter for outcomes where the product of the faces equals K
favorable_outcomes_count = 0
# Calculate the total number of possible outcomes when rolling both dice.
# Each die has 6 faces, and the rolls are independent.
# The total number of possible pairs (prime_face, composite_face) is 6 * 6 = 36.
total_outcomes = len(prime_faces) * len(composite_faces) # This will be 36
# Iterate through each possible face value of the prime die
for p_face in prime_faces:
# For each prime face value, iterate through each possible face value of the composite die
for c_face in composite_faces:
# Check if the product of the current pair of face values equals the target K
if p_face * c_face == k:
# If the product matches K, increment the count of favorable outcomes
favorable_outcomes_count += 1
# Calculate the probability.
# Probability = (Number of favorable outcomes) / (Total number of outcomes)
# Use float() conversion for total_outcomes to ensure floating-point division,
# which is necessary for calculating the probability accurately.
# Since total_outcomes is guaranteed to be 36 (non-zero), we don't need to check for division by zero.
probability = favorable_outcomes_count / float(total_outcomes)
# Print the calculated probability.
# The problem requires the output to be accurate up to an absolute error of 10^-12.
# Formatting the output to 17 decimal places using an f-string is a standard way
# to ensure sufficient precision for competitive programming tasks.
print(f"{probability:.17f}")
# Standard Python entry point check.
# This ensures that the solve() function is called only when the script is executed directly.
if __name__ == '__main__':
solve()
qwewe