题意:给一个数n,输出它后一个素数和前一个素数的差,如果n是素数输出0。
思路:试除判断n周围的数是不是素数。
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
#include <string>
#include <memory.h>
#include <vector>
#include <queue>
#include <stack>
#include <ctype.h>
#define INF 1000000
using namespace std;
int main(){
int n;
while(cin>>n){
if(n==0)break;
if(n==2){
cout<<"0"<<endl;
continue;
}
int left,right;
for(left=n;;left--){
bool flag=true;
for(int i=2;i<=sqrt((double)left)+1;i++){
if(!(left%i))flag=false;
}
if(flag)break;
}
for(right=n;;right++){
bool flag=true;
for(int i=2;i<=sqrt((double)right)+1;i++){
if(!(right%i))flag=false;
}
if(flag)break;
}
cout<<right-left<<endl;
}
return 0;
}

被折叠的 条评论
为什么被折叠?



