南阳oj 素数距离问题
01.#include<iostream>02.#include<math.h> 03.using namespace std;04.bool prime(int x)05.{06. if(x==1||x==0)07. return false;08. else if(x==2||x==3)09. return true;10. else11. {12. for(int i=2;i<=sqrt(x);i++)13. {14. if(x%i==0)15. return false;16. }17. return true;18. }19. } 20.int main ()21.{22. int n;23. cin>>n;24. while(n--)25. {26. int m;27. cin>>m;28. for(int i=0;i<=m;i++)29. {30. if(prime(m-i))31. {32. cout<<m-i<<" "<<i<<endl;33. break;34. } 35. else if(prime(m+i))36. {37. cout<<m+i<<" "<<i<<endl;38. break;39. }40. }41. }42. return 0;43.}注意数据的处理和范围,输入的整形数m的范围是0<m<1000000,所以要考虑到当m=1的情况。

浙公网安备 33010602011771号