P1820 寻找AP数
2024-08-30 04:29:59
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 ;
}
最新文章
- GitHub for Windows呆瓜级操作1
- sha1散列(C语言)
- jmeter安装配置教程
- C#读写者线程(用AutoResetEvent实现同步)
- Android:控件GridView的使用
- UIView的基本属性及ANimation
- php基础知识掌握——四种界定符
- yii2.0修改默认的访问控制器
- 开发中使用mongoTemplate进行Aggregation聚合查询
- Mysql--执行计划 Explain
- CAP二十年:“规则”变了
- 设置SharePoint部门站点各个文件夹的权限
- 约束 CONSTRAINT
- RunAsPolicy Exit Code 1替代
- oracle创建视图(view)
- 【SQLSERVER】如何找出字符串中的数字
- 14.Iterate a Cursor in the mongo Shell-官方文档摘录
- Jenkins + Jmeter +Ant自动化集成环境搭建(一)
- Spring Boot 启动报错 Exception in thread ";main"; java.lang.StringIndexOutOfBoundsException: String index out of range: 37
- 关于yii2 REST api 的问题
热门文章
- 30-Ubuntu-用户权限-01-用户和权限的基本概念
- git 常用命令 mv rm checkout revert reset
- jsk
- 【转】elasticsearch中字段类型默认显示{ ";foo";: { ";type";: ";text";, ";fields";: { ";keyword";: {";type";: ";keyword";, ";ignore_above";: 256} }
- 如何用json 与jsonp 的区别去回答你的面试官?
- 因kernel too old 而 centos6.8 升级内核
- jdk源码阅读-ConcurrentLinkedQueue(一)
- BCZM : 2.1
- leetcood学习笔记-204-计算质数
- leetcood学习笔记-172-阶乘后的0