PROBLEM 80
Hard

Exactly One Condition — Rule 181

Go Programming Basics · Go

</>
STATUS Not solved

TASK

Problem

#80

An integer `n` is entered. Print `YES` if exactly one of these statements is true: `n` is divisible by 3; `n` is greater than 20. Otherwise print `NO`. In addition, `n` must not be divisible by 181.

EXAMPLE

Example

Input
9
Output
YES

LIMITS

Constraints

- Input values fit the Go types used in the reference solution.
- Print only the value(s) requested by the statement.
📖
LEARN Theory for this problem
+

`if` selects a branch from a boolean condition. Combine predicates with `&&`, `||`, and `!` only when their precedence matches the intended logic.

`fmt.Scan`/`fmt.Fscan` parses whitespace-separated input into typed variables. The variable type controls how later arithmetic and comparisons behave.

Apply these rules directly to the task requirement: an integer `n` is entered. Print `YES` if exactly one of these statements is true: `n` is divisible by 3; `n` is greater than 20. Otherwise print `NO`. In addition, `n` must not be divisible by 181.

💡
NEED HELP? Hints
+

['Write the boolean condition directly, then verify boundary values just below, at, and just above each threshold.', 'Read values in exactly the order stated by the condition.', 'Use the sample input `9` to verify parsing and confirm that the program prints exactly `YES` with no extra text.']

ANSWER Solution
+
package main

import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	if ((n%3 == 0) != (n > 20)) && n%181 != 0 {
		fmt.Println("YES")
	} else {
		fmt.Println("NO")
	}
}