2 条题解
-
0
纯暴力写法
#include<stdio.h> #include<math.h> int main() { int n; scanf("%d",&n); int b; int k,q,j; int qian=0,hou=0; for(int i=1; i<=n; i++) { scanf("%d",&b); int su=1; if(b==1) { printf("2 1"); printf("\n"); } else if(b!=1) { for(int j=2; j<=sqrt(b); j++) { if(b%j==0) { su=0; break; }
} if(su==1) { printf("%d 0\n",b); } else if(su==0) { for(k=b;; k++) { su = 1; for(j=2; j<=sqrt(k); j++) { if(k%j==0) { su=0; break; } } if (su==1) { break; } } hou = k - b; for(q=b;; q--) { su = 1; for(j=2; j<=sqrt(q); j++) { if(q%j==0) { su=0; break; } } if (su==1) { break; } } qian=b-q; if(hou>qian){ printf("%d %d",q,qian); } else if(hou<qian){ printf("%d %d",k,hou); } else if(hou==qian){ printf("%d %d",q,qian); } printf("\n"); } } } return 0;
}
-
0
#include<iostream> #include<cmath> using namespace std;
bool isprime(int n) { for(int k=2;k<=sqrt((double)n);k++) if((n%k)0) return false; return true; } int main() { int n; cin>>n; while(n--) { int num,i,j; cin>>num; if(num1) { cout<<"2 1"<<endl; continue; } for(i=num;!isprime(i);i--); for(j=num;!isprime(j);j++);
if((num-i)<(j-num)) cout<<i<<' '<<(num-i)<<endl; else if((num-i)>(j-num)) cout<<j<<' '<<(j-num)<<endl; else if((num-i)==(j-num)) cout<<i<<' '<<(num-i)<<endl; }
}
- 1
信息
- ID
- 127
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 2011
- 已通过
- 265
- 上传者