小明和小慧吵架了,小明想见小慧并请求得到原谅。小慧给了小明两个数m和n(1<m<1000 和 m<n<2000 ),在m到n之间的素数中(范围包含m和n),相邻两个素数差的最大值就是小慧决定不见小明的天数,小明非常想知道几天后才能见到小慧,聪明的你帮帮小明吗?
输入m和n
相邻两个素数差的最大值
10 30
6
10和30之间的素数有 11 13 17 19 23 29 ,相邻两个素数差的最大值是29-23 = 6
解答
#include <iostream> using namespace std; bool is(int n) { int m=0,i; for(i=1; i<n; i++) if(n%i==0) m++; if(m==1) return true; else return false; } int main() { int a,b,m[1000],i,n=0,max=0; cin>>a>>b; for(i=a; i<=b; i++) if(is(i)) { m[n++]=i; } for(i=0; i<n-1; i++) { if(m[i+1]-m[i]>max) max=m[i+1]-m[i]; } cout<<max;; }
原文地址:http://blog.csdn.net/blue_skyrim/article/details/45418111