題目連結: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;
}