23 May, 2020

AtCoder(go) ABC106-B

B - 105

【概要】 1 以上 N 以下の奇数のうち, 正の約数をちょうど8 個持つようなものの個数を求めよ.

全探索で求める。

1〜N の数字を for 文で一個づつ約数の数を求める。

このとき最初に偶奇判定をしておくとループ回数を減らせる。

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {

	n := IntStdin()

	var result int

	for i := 1; i <= n; i++ {
		var cnt int
		if i%2 == 1 {
			for j := 1; j <= n; j++ {

				if i%j == 0 {
					cnt++
				}
			}
			if cnt == 8 {
				result++
			}
		}
	}

	fmt.Println(result)
}


func strStdin() string {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	return strings.TrimSpace(scanner.Text())
}

// IntStdin 1つの符号付き整数値の入力

func intStdin() int {
	stringInput := strStdin()
	num, _ := strconv.ParseInt(strings.TrimSpace(stringInput), 10, 64)
	return int(num)
}

Tags

: AtCoder, Go