haoi2007专题

P1463 [POI2002][HAOI2007]反素数

原题链接 #include<bits/stdc++.h>using namespace std;int n,ans[10000001];int suan(int x);int jiashu(int x);int main(){cin>>n;int i,mx=0,gs;gs=0;if(n>1000000000){if(n<=1102701600){cout<<1102701600<<e

[BZOJ 1053][HAOI2007]反素数ant:搜索

点击这里查看原题 实际上是求n以内因数最多的数。初看数据范围会以为是数论题,实际上可以贪心,素数的次数相同时小素数比大素数更优。预处理出前若干个素数,发现前10个素数之积已超过2e9,因此可以搜索。 /*User:SmallLanguage:C++Problem No.:1053*/#include<bits/stdc++.h>#define ll long long#defin

bzoj1053 [HAOI2007] 反素数ant

传送门 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的最大的反质

[HAOI2007]反素数ant题解

题目链接 分析 感觉这道题就是一道披着数论外衣的搜索 我们可以推出三个性质 1.最大反素数即为范围内因数最多的最小的那一个 2.最多有10个素因子,且素因子的幂不超过31 3.必定是最小的几个素因子相乘,且指数非严格递减 2可根据数据范围推出,最小的10个素数相乘大于2^31,所以可知。对于3,我们可根据唯一分解定理分析得出。这样搜索即可 时间:0ms。 上代码 #includ