package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { // Scan開始前にSplitを設定しないとPanicになるため、ここに移動 s.Split(bufio.ScanWords) var P = nextInt() var C = nextInt() var primes = []int{2, 3, 5, 7, 11, 13} var composite = []int{4, 6, 8, 9, 10, 12} primes_exp := float64(0.0) for _, v := range primes { primes_exp += float64(v) } primes_exp /= 6.0 composite_exp := 0.0 for _, v := range composite { composite_exp += float64(v) } composite_exp /= 6.0 result := float64(1.0) for i := 0; i < P; i++ { result *= primes_exp } for i := 0; i < C; i++ { result *= composite_exp } fmt.Printf("%f\n", result) } var s = bufio.NewScanner(os.Stdin) func next() string { // s.Split(bufio.ScanWords) // 削除: Scan後に呼ぶとPanicになるため s.Scan() return s.Text() } func nextLine() string { // s.Split(bufio.ScanLines) // 削除: 同上 s.Scan() return s.Text() } func nextInt() int { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return i } func nextLong() int64 { i, e := strconv.ParseInt(next(), 10, 64) if e != nil { panic(e) } return i } func mapToInt(arr []string) []int { ret := make([]int, len(arr)) for i := 0; i < len(arr); i++ { var err error ret[i], err = strconv.Atoi(arr[i]) if err != nil { panic(err) } } return ret } func max(a int, b int) int { if a < b { return b } return a } func min(a int, b int) int { if a < b { return a } return b } func PrintI(args ...int) { fmt.Println(strings.Join(mapToString(args), " ")) } func mapToString(arr []int) []string { ret := make([]string, len(arr)) for i := 0; i < len(arr); i++ { ret[i] = strconv.Itoa(arr[i]) } return ret }