徐颢天
(Mincraft MC Mr.xuhaotian)
1
- 两个质数积
题目ID:9499必做题100分
最新提交:
Wrong Answer
0 分
历史最高:
Wrong Answer
96 分
时间限制: 1000ms
空间限制: 524288kB
题目描述
鱼大大有一个正整数n,他想求n前最大质数与n后最小质数的积。
输入格式
一个正整数 n。
输出格式
n前后两个质数的积。
样例
Input 1
4
Output 1
15
样例解释
当n=4时,n前的最大质数为3,n后的最小质数为5,3*5=15
数据范围
2<n<2312<n<231,且保证两个质数都在int范围内
代码:
#include<bits/stdc++.h>
using namespace std;
bool anne(int x) {
for(int i=2; i<=sqrt(x); i++) {
if(x%i==0)return 0;
}
return 1;
}
int main(){
int n,cnt=0,sum=0,a;
cin>>n;
for(int i=2;i<=n-1;i++){
if(anne(i)==1){
sum==i;
break;
}
}
for(int i=n+1;i<=2147483648;i++) {
if(anne(i)==1){
cnt==i;
break;
}
}
a=sum*cnt;
cout<<a;
return 0;
}
邵睿杰
(邵睿杰)
2
首先,for(int i=2;i<=n-1;i++){
改成for(int i=n-1;i>=2;i--)
,然后sum==i
改成sum=i
,下面的cnt==i
也一样,最后以后请格式化代码,谢谢 
武伯龙
(武伯龙)
3
寻找小于n的最大质数(从n-1递减),寻找大于n的最小质数(从n+1递增)
栗子酱
(栗栗子)
7
最大质数肯定从当前这个数往下枚举啊,咋能从2开始呢
栗子酱
(栗栗子)
8
他的意思是把这个改成 for(int i=n-1;i>=2;i--)
吧
1 个赞
徐颢天
(Mincraft MC Mr.xuhaotian)
9
WA55分,服了
代码:
#include<bits/stdc++.h>
using namespace std;
bool anne(int x) {
for(int i=2; i<=sqrt(x); i++) {
if(x%i==0)return 0;
}
return 1;
}
int main(){
int n,cnt=0,sum=0,a;
cin>>n;
for(int i=n-1;i>=2;i–){
if(anne(i)==1){
sum=i;
break;
}
}
for(int i=n+1;i<=2147483648;i++) {
if(anne(i)==1){
cnt=i;
break;
}
}
a=sum*cnt;
cout<<a;
return 0;
}