1053: [HAOI2007]反素数ant
Submit: 4124 Solved: 2456
[Submit][Status][Discuss]
Description
Input
一个数N(1<=N<=2,000,000,000)。
Output
不超过N的最大的反质数。
Sample Input
Sample Output
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 #define LL long long 6 7 int dist[20]={2,3,5,7,11,13,17,19,23,29,31}; 8 int n,ans,num; 9 10 void dfs(LL t,int k,int tmp) 11 { 12 if(k==11) 13 { 14 if(tmp>num){ans=t;num=tmp;} 15 if(t<ans&&tmp==num){ans=t;num=tmp;} 16 return; 17 } 18 for(int i=0;i<31;i++) 19 { 20 dfs(t,k+1,tmp*(i+1)); 21 t*=dist[k]; 22 if(t>n) break; 23 } 24 } 25 26 int main() 27 { 28 scanf("%d",&n); 29 dfs(1,0,1); 30 printf("%d",ans); 31 return 0; 32 }