Description
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。
如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。
现在给定一个数N,你能求出不超过N的最大的反质数么?
Input
一个数N(1<=N<=2,000,000,000)。
Output
不超过N的最大的反质数。
Sample Input
1000
Sample Output
840
Solution
题目要求的是1~n中约数最多的且最小的数
那么思路就是在约数相同时找尽量小的数 然后暴搜qwq。。Code
//By Menteur_Hxy#include#include #include #include #include #define F(i,a,b) for(register LL i=(a);i<=b;i++)using namespace std;typedef long long LL;LL n,ma,ans;LL pri[20]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59};void dfs(LL now,LL cnt,LL num,LL d) { if(num>ma||(num==ma&&now