当n>3存在素数p使得 n<p<2(n-1)
当n>1存在素数p使得 n<p<2n
在该题中
当k+1是素数时:
1——k+1在1~n+1内没有k+1的倍数,与所有数互质——只要1天
2——k+1在1~n+1中有k+1的倍数,
————那么1天后剩下的数只有k+1的倍数,由伯特兰-切比雪夫定理,k与2k内存在素数p,那么k与nk内也存在素数(在第一天已经被告知选中)
————所以第2天有存在的素数告知nk,因此没有剩下未告知
当k+1是合数时:
假设k+1的质因数是a,b,c....
第1天后只剩下a,b,c....本身和倍数,由伯特兰-切比雪夫定理。a和na之间存在素数p,所以第2天存在的素数告知na和a
代码
#include <iostream> using namespace std; long long k,n; bool isPrime(long long k){ for(int i=2;i<=k/i;i++){ if(k%i==0) return false ; } return true; } int main(int argc, char** argv) { cin>>n>>k; if(isPrime(k+1)){ if(k+1<<1>n+1) puts("1"); else puts("2"); }else{ puts("2"); } return 0; }