P1820 寻找AP数
两个性质,分解质因数后,连续,且指数递减,dfs就完了

#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <cmath>
#include <cstring>
#define inf 2147483647
#define N 1000010
#define p(a) putchar(a)
#define For(i,a,b) for(long long i=a;i<=b;++i)
//by war
//2019.8.19
using namespace std;
long long n,cnt,ans1,ans2;//ans1是数的大小,ans2是因数个数
long long prime[N];
bool vis[N];
void in(long long &x){
long long y=;char c=getchar();x=;
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c<=''&&c>=''){ x=(x<<)+(x<<)+c-'';c=getchar();}
x*=y;
}
void o(long long x){
if(x<){p('-');x=-x;}
if(x>)o(x/);
p(x%+'');
} void Euler(){
For(i,,1e6){
if(!vis[i]) prime[++cnt]=i;
for(long long j=;j<=cnt&&i*prime[j]<=1e6;j++){
vis[i*prime[j]]=;
if(i%prime[j]==)
break;
}
}
} long long ksm(long long a,long long b){
long long r=;
while(b>){
if(b&)
r*=a;
a*=a;
b>>=;
}
return r;
} void dfs(long long id,long long cnt,long long num,long long m){//第几个质数,指数,大小,因数个数
if(m==ans2)
ans1=min(ans1,num);
if(m>ans2){
ans1=num;
ans2=m;
}
For(i,,cnt)
if(ksm(prime[id],i)<=n&&num*ksm(prime[id],i)<=n)
dfs(id+,i,num*ksm(prime[id],i),m*(+i));
else
return;
} signed main(){
Euler();
while(cin>>n){
ans1=;ans2=;
For(i,,)
if(((long long)<<i)<=n)
dfs(,i,((long long)<<i),+i);
else
break;
o(ans1);p('\n');//o(ans2);p('\n');
}
return ;
}

最新文章

  1. GitHub for Windows呆瓜级操作1
  2. sha1散列(C语言)
  3. jmeter安装配置教程
  4. C#读写者线程(用AutoResetEvent实现同步)
  5. Android:控件GridView的使用
  6. UIView的基本属性及ANimation
  7. php基础知识掌握——四种界定符
  8. yii2.0修改默认的访问控制器
  9. 开发中使用mongoTemplate进行Aggregation聚合查询
  10. Mysql--执行计划 Explain
  11. CAP二十年:“规则”变了
  12. 设置SharePoint部门站点各个文件夹的权限
  13. 约束 CONSTRAINT
  14. RunAsPolicy Exit Code 1替代
  15. oracle创建视图(view)
  16. 【SQLSERVER】如何找出字符串中的数字
  17. 14.Iterate a Cursor in the mongo Shell-官方文档摘录
  18. Jenkins + Jmeter +Ant自动化集成环境搭建(一)
  19. Spring Boot 启动报错 Exception in thread &quot;main&quot; java.lang.StringIndexOutOfBoundsException: String index out of range: 37
  20. 关于yii2 REST api 的问题

热门文章

  1. 30-Ubuntu-用户权限-01-用户和权限的基本概念
  2. git 常用命令 mv rm checkout revert reset
  3. jsk
  4. 【转】elasticsearch中字段类型默认显示{ &quot;foo&quot;: { &quot;type&quot;: &quot;text&quot;, &quot;fields&quot;: { &quot;keyword&quot;: {&quot;type&quot;: &quot;keyword&quot;, &quot;ignore_above&quot;: 256} }
  5. 如何用json 与jsonp 的区别去回答你的面试官?
  6. 因kernel too old 而 centos6.8 升级内核
  7. jdk源码阅读-ConcurrentLinkedQueue(一)
  8. BCZM : 2.1
  9. leetcood学习笔记-204-计算质数
  10. leetcood学习笔记-172-阶乘后的0