题目大意:求最大反质数
题解见黄学长:题解
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int p[12]={1,2,3,5,7,11,13,17,19,23,29,31},ans(1),n,sum(1);
int Dfs(int k,long long num,int cnt,int e) {
if(k==12) {
if(num>ans&&cnt>sum) {
ans=num;
sum=cnt;
}
if(num<=ans&&cnt>=sum) {
ans=num;
sum=cnt;
}
return 1;
}
long long t=1;
for(int i=0;i<=e;i++) {
Dfs(k+1,num*t,cnt*(i+1),i);
t*=p[k];
if(num*t>n) break;
}
}
int main() {
cin>>n;
Dfs(1,1,1,20);
cout<<ans;
}
版权声明:本文为u013630329原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。