1 条题解
-
0
C :
#include<stdio.h> int main() { int N,M; scanf("%d",&N); for(int t = 1; t <= N; t++) { scanf("%d",&M); if(M == 1 || M ==2) printf("2\n"); else { int k,num1,num2,s1,s2; for(k = 2; k < M; k++) if( M % k == 0) break; if(k < M) { for(int i = M; i >= 2; i--) { int j; for(j = 2; j < i; j++) if(i % j == 0) break; if(j == i) { s1 = i; num1 = M - i; break; } } for(int i = M;; i++) { int j; for(j = 2; j < i; j++) if(i % j == 0) break; if(j == i) { s2 = i; num2 = i - M; break; } } if(num1 > num2) printf("%d\n",s2); else printf("%d\n",s1); } else printf("%d\n",M); } } return 0; }
C++ :
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include <fstream> #include <limits> #include <vector> #include <list> #include <set> #include <map> #include <queue> #include <stack> #include <cassert> using namespace std; int main() { int t,n; bool a[1010]={1,1,0,0,1}; for(int i=2;i<1005;i++) for(int j=2;j<=i&&i*j<1005;j++) a[i*j]=1; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0;;i++) { if(n-i>0&&a[n-i]==0) { printf("%d\n",n-i); break; } if(n+i<=1000&&a[n+i]==0) { printf("%d\n",n+i); break; } } } return 0; }
- 1
信息
- ID
- 944
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者