【算法分析】
求n以内的最大素数,实现技巧之一是从n-1开始判断其是否为素数,这样可以提升算法效率。
【算法代码】
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
if(n<2) return false;
for(int i=2; i<=sqrt(n); i++) {
if(n%i==0) return false;
}
return true;
}
int getPrime(int n) { //Get largest prime less than n
for(int i=n-1; i>=2; i--) {
if(isPrime(i)) {
return i;
break;
}
}
}
int main(){
int n;
cin>>n;
cout<<getPrime(n)<<endl;
return 0;
}
/*
in:100
out:97
*/
** 求大于给定数的最小素数代码,参见:https://blog.csdn.net/hnjzsyjyj/article/details/132182788
【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/134672422