题目链接:http://codeforces.com/contest/755/problem/A 题意:给你一个整数n,让你求一个m,使得n*m+1不是素数 解析:由于题目有说明,所以可以直接暴力的把m求出来,但是有更简单的办法,完全平方式是n*n+2*n+1,所以直接输出n+2就好了,但是他说了答案不能超过1e3,所以要稍微处理一下
#include <bits/stdc++.h> using namespace std; const int maxn = 3e5+100; const int inf = 0x7fffffff; int main(void) { int n; scanf("%d",&n); if(n+2>1e3) printf("%d\n",n-2); else printf("%d\n",n+2); return 0; } #include <bits/stdc++.h> using namespace std; const int maxn = 3e5+100; const int inf = 0x7fffffff; bool is_prime(int n) { if(n<2) return false; for(int i=2;i*i<=n;i++) { if(n%i==0) return false; } return true; } int main(void) { int n; scanf("%d",&n); if(n%2) puts("5"); else { for(int i=1;i<=1e3;i++) { if(!is_prime(i*n+1)) { printf("%d\n",i); break; } } } return 0; }