#include <iostream> #include <math.h> using namespace std; const int csMax = 1299709; bool isPrim(int a); int main() { int num, maxGap; while(1 == scanf("%d", &num), num) { if(isPrim(num)) { maxGap = 0;; } else { int temp_l = num; int temp_r = num; while(temp_l) { temp_l--; if(isPrim(temp_l)) break; } while(temp_r) { temp_r++; if(isPrim(temp_r)) break; } maxGap = temp_r-temp_l; } printf("%d/n", maxGap); } return 0; } bool isPrim(int a) { bool flag = true; int k; if(a == 1) flag = false; else { k = (int) (sqrt(1.0*a)); //这个地方绝对值得注意!很多次CE! 类型一定严格要匹配! for(int i = 2; i <= k; i++) { if(a % i == 0) { flag = false; } } } return flag; }