3600 - 验证整数性质

题目描述

小 Y 对两种数字都很感兴趣:

一种是 平方和数n 是平方和数当且仅当可以拆成两个完全平方数 p, q 的和。

另一种是 质数和数n 是质数和数当且仅当可以拆成两个质数 p, q 的和。

小 Y 将要问你一个问题,要么是 “n 是不是平方和数?”,要么是 “n 是不是质数和数?”。请你提前写一个程序,两种问题都能回答。

输入

你的程序会在第一行得到正整数 n

第二行会有一个字符 SP。其中字符 S 表示问题为 “n 是不是平方和数?”,而字符 P 表示问题为 “n 是不是质数和数?”。

输出

根据输入的问题,你需要回答 Yes(表示“是”)或 No(表示“否”)

样例

输入

1
S

输出

Yes

输入

11
P

输出

No
说明

## 提示

**【样例 1 解释】**

1 = 0^2 + 1^2,所以是平方和数。

**【样例 2 解释】**

不难验证 11 无法写成两质数和,确实不是质数和数。

## 数据范围

对于 50\% 数据,保证 1 \le n \le 10^5

对于全体数据,1 \le n \le 10^9,第一行必为正整数,第二行只有一个字符 SP

**提示:** 当 4 \le n \le 10^9n 为偶数,则 n 必为质数和数。

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 15
通过人数 3
金币数量 3 枚
难度 基础


上一题 下一题