题目链接:http://acm.zzuli.edu.cn/problem.php?id=2541
2541: D学长 乐于助人
时间限制: 1 Sec 内存限制: 128 MB
提交: 686 解决: 100
[提交] [状态] [讨论版] [命题人:admin]
题目描述
众所周知,D学长十分乐于助人,其他人向D学长请教问题他都乐于解答。
某日,D学长收到了这样一个问题:
给你两个整数x和y(保证x>y)。你可以选择任意一个素数p,然后用x减去p,可以减任意次数。可以使减去后的x等于y吗?
(回想一下,素数是一个正整数,它正好有两个正因子:1和这个整数本身。素数的序列从2,3,5,7,11开始。)
这个问题一下就把D学长难住了,聪明的ACMer,你能帮助他吗?
输入
输入两个整数,以空格隔开,分别表示 x, y, 1<=y<x<=10^18.
输出
如果可以输出 “YES”, 否则输出 “NO”
样例输入 Copy
100 98
样例输出 Copy
YES
思路:
本题是一个规律题,数字分为素数和非素数,除了1之外的所有非素数其实都是素数的倍数,所以只需要判断一下 x - y 的值是否是1就可以了。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x, y;
scanf("%d %d\n", &x, &y);
if(x - y == 1)
printf("NO\n");
else
printf("YES\n");
return 0;
}