一本通1629聪明的燕姿

1629:聪明的燕姿

时间限制: 1000 ms         内存限制: 524288 KB

【题目描述】

城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁。

可是燕姿不一样,燕姿知道自己等的人是谁,因为燕姿数学学得好!燕姿发现了一个神奇的算法:假设自己的号码牌上写着数字 SS,那么自己等的人手上的号码牌数字的所有正约数之和必定等于 S。

所以燕姿总是拿着号码牌在地铁和人海找数字(喂!这样真的靠谱吗)可是她忙着唱《绿光》,想拜托你写一个程序能够快速地找到所有自己等的人。

【输入】

输入包含 k 组数据。

对于每组数据,输入包含一个号码牌S。

【输出】

对于每组数据,输出有两行,第一行包含一个整数 m,表示有 m 个等的人。

第二行包含相应的 m 个数,表示所有等的人的号码牌。

注意:你输出的号码牌必须按照升序排列。

【输入样例】

42

【输出样例】

3
20 26 41

【提示】

数据范围与提示

对于 100% 的数据,k≤100, S≤2×109 。

 

sol:这道题初看时毫无思路,于是去看题解了,看到是搜索后一脸懵逼。。。

对于一个数

如果他是p1a1*p1a2*p3a3*~~*pnan

那么他的因数和就是 (p10+p11+p12+...+p1a1)*(p20+p21+...+p2a2)*...*(pn1+pn2+...+pnan

于是可以爆搜p1~pn及其系数a1~an,随便弄点小剪枝居然就能过了,而且还飞快

剪枝(1),令当前的因数和为S,若(S-1)为质数,那么(S-1)*之前的几个系数显然是一种答案

剪枝(2),令当前的因数和为S,枚举质因数p,若p2>=S,这个p就是非法的,因为就算系数a是1, S除以(p+1)后S也小于p,而之后出现的质因数必须严格大于上一个(没有这个剪枝会T的很惨)

Ps:代码实现复杂度并不高

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{ll s=0;bool f=0;char ch=' ';while(!isdigit(ch)){f|=(ch=='-'); ch=getchar();}while(isdigit(ch)){s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0){putchar('-'); x=-x;}if(x<10){putchar(x+'0'); return;}write(x/10);putchar((x%10)+'0');return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=100005;
int Prim[N],P_Cnt;
bool Bo[N];
inline void Pre_Prime()
{Prim[P_Cnt=0]=0;int i,j;int B=100000;for(i=2;i<=B;i++){if(!Bo[i]){Prim[++P_Cnt]=i;}for(j=1;j<=P_Cnt&&Prim[j]*i<=B;j++){
//            printf("Shai %d*%d=%d\n",Prim[j],i,Prim[j]*i);Bo[Prim[j]*i]=1;if(i%Prim[j]==0) break;}}
//    printf("Cnt=%d\n",P_Cnt);
//    for(i=1;i<=P_Cnt;i++) Wl(Prim[i]);
//    exit(0);return;
}
int Num,Ans[N];
inline bool Check_Prime(int x)
{if(x<=100000) return (Bo[x])?(false):(true);int i;for(i=2;i*i<=x;i++) if(x%i==0){return false;}return true;
}
//(p1^0+p1^1+...+p1^a1)*(p2^0+p2^1+...+p2^a2)*...*(pn^0+pn^1+...+pn^an)
inline void dfs(int Last,int Shuz,int Sum)
{if(Sum==1){Ans[++*Ans]=Shuz; return;}if(Sum-1>Prim[Last]&&Check_Prime(Sum-1)){Ans[++*Ans]=Shuz*(Sum-1);}int i,j,t;for(i=Last+1;i<=P_Cnt&&Prim[i]*Prim[i]<=Sum;i++){t=Prim[i];for(j=t+1;j<=Sum;t*=Prim[i],j+=t) if(Sum%j==0){dfs(i,Shuz*t,Sum/j);}}return;
}
int main()
{Pre_Prime();while(~scanf("%d",&Num)){int i;*Ans=0;dfs(0,1,Num);sort(Ans+1,Ans+*Ans+1);*Ans=unique(Ans+1,Ans+*Ans+1)-Ans-1;Wl(*Ans);for(i=1;i<*Ans;i++){W(Ans[i]);}if(*Ans) Wl(Ans[*Ans]);}return 0;
}
/*
input
42
8359
output
3
20 26 41
0
*/
View Code

 

转载于:https://www.cnblogs.com/gaojunonly1/p/10439914.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT职场人生系列之二十四:程序员如何增加收入

这是IT职场人生系列的第二十四篇。&#xff08;序言&#xff0c;专栏目录&#xff09; 程序员的收入是广受关注的问题&#xff0c;很多人从业3&#xff5e;5年之后就会遇到这个收入瓶颈。尽管物价不断上涨&#xff0c;程序员尤其是初、中级程序员的收入不升反降。即使上次在某…

ASP 代码当前记录集不支持更新问题的解决办法。

错误类型&#xff1a;ADODB.Recordset (0x800A0CB3)当前记录集不支持更新。这可能是提供程序的限制&#xff0c;也可能是选定锁定类型的限制。 /Model/manage/Admin_Admin.asp, 第 35 行 找到放在数据库文件的--- 右键--》属性---》安全----》添加IIS来宾用户---》权限为&#…

@PathVariable 注解 说明

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PathVariable 映射 URL 绑定的占位符 带占位符的 URL 是 Spring3.0 新增的功能&#xff0c;该功能在SpringMVC 向 REST 目标挺进发展过…

数据清洗,筛选

本人在私募&#xff0c;负责数据收集以及清洗&#xff0c;就是包括收集数据&#xff0c;按照领导要求&#xff0c;选出满足条件的数据&#xff0c;用于校验策略是否正确。 现在就在这进行代码上传&#xff0c;即用于自己总结整理&#xff0c;也用于供大家学习了解&#xff0c;实…

JS媒体查询

样式的改变使用C3的媒体查询 行为和功能的改变使用JS的媒体查询 matchMedia()方法参数可写任何一个CSSmedia规则&#xff0c;返回的是新的MediaQueryList对象&#xff0c;该对象有两个属性 media&#xff1a;查询语句的内容matches&#xff1a;检查查询结果&#xff0c;返回boo…

Ruby初步介绍

Ruby是脚本语言,与传统的C, Java不同的是,它不需要经过编译,而是直接可以被执行 Ubuntu下执行第一个ruby脚本 print("Hello David, This is your first Ruby script.\n") davidubuntu:~/RubyTrain/Basic$ ruby Hello.rb 运行结果: Hello David, This is your first R…

C/C++ main用法总结

今天看到一篇很好的文章&#xff0c;详细的讲解了C、C中的main函数&#xff0c;以及returne的用法。转载过来大家一起分享下。转自&#xff1a;http://www.cnblogs.com/ct6816678/archive/2012/10/26/2741824.htmlreturn是C预定义的语句&#xff0c;当return语句提供了一个值时…

如何将数据写入excel中,而不覆盖原有数据

之前直接用pandas库&#xff0c;然后to_excel&#xff08;&#xff09;&#xff0c;结果直接将原始数据直接覆盖&#xff0c;幸亏有备份。&#xff08;友善提醒&#xff0c;做数据处理之前&#xff0c;先将数据本地备份一份&#xff0c;确认完全没有问题&#xff0c;然后还是备…

对List集合中的元素进行排序

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 ollections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序&#xff0c;这就需要用到 Java中提供的对集合…

Jmeter----5.1 设置中文

注意&#xff1a;JMeter5需要Java8 以上&#xff0c;本文环境是Win7 64位 设置永久默认汉化&#xff1a;在Jmeter的安装目录下的bin目录中找到 jmeter.properties这个文件&#xff0c;用文本编辑器打开。在#languageen下面插入一行languagezh_CN 这样&#xff0c;再次打开Jmete…

pandas计算移动平均值

本人今天遇到遇到一个任务&#xff0c;计算同月份合约当天各合约总持仓量的移动平均值。立刻写下了这个函数&#xff1a; group df.groupby([合约系列,date]) f pd.DataFrame(group[持仓量].sum().rolling(20).mean()) 上交后&#xff0c;提出要求&#xff0c;不行&#xff…

一个优美的架构需要考虑的几个问题

随着公司的架构逐步发展&#xff0c;越来越多的问题被提出来&#xff0c;也发现一个良好的技术架构需要考虑的问题 1 架构的可扩展性 这里面又包括以下几个方面 水平垂直可拆分服务无状态数据可缓存可异步处理&#xff08;提高性能&#xff09;可复制&#xff08;提高效率&…

HSTS的来龙去脉

前言 安全经常说“云、管、端”&#xff0c;“管”指的是管道&#xff0c;传输过程中的安全。为了确保信息在网络传输层的安全&#xff0c;现在很多网站都开启了HTTPS&#xff0c;也就是HTTPTLS&#xff0c;在传输过程中对信息进行加密。HTTPS使用了对称加密、非对称加密、消息…

利用XShell上传、下载文件(使用sz与rz命令) 超实用!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 rz、sz 安装方式&#xff1a;sz/rz命令安装方式 借助XShell&#xff0c;使用linux命令sz可以很方便的将服务器上的文件下载到本地&#…

quantaxis使用docker安装,解决了一个很奇特的问题

之前使用docker-compose pull 更新之后&#xff0c;使用docker-compose up进行安装。出现 qaweb显示address already in web,cmd中显示Starting qa_web is wrong。之前一直觉得什么毛病啊&#xff0c;试了很多办法。 比如关闭8010接口&#xff1a; netstat -ano|findstr “801…

基础数学落后与高端人才流失

这个话题令人感到很痛苦&#xff0c;也很无奈。我本不该提起这个话题。但是&#xff0c;无穷小微积分专业网站不久即将开通&#xff0c;我不得不认真备课&#xff0c;仔细研读 J.Keisler 的“初等微积分”电子版教材。在研究该教材内容的过程中&#xff0c;参照国内的《高等数学…

Datawhale MySQL 训练营 Task2 查询语句

目录 MySQL 管理MySQL 用户管理 参考数据库管理SQ查询语句1. 导入示例数据库&#xff0c;教程 MySQL导入示例数据库2. 查询语句 SELECT3. 筛选语句 WHERE &#xff0c;过滤4. 分组语句 GROUP BY5. 排序语句 ORDER BY6. 函数作业总结MySQL 管理 MySQL版本 8.0.15 MySQL 用户管理…

记录一个相当好用的反编译工具下载地址

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 下载地址见&#xff1a;https://download.csdn.net/download/stoneepigraph/9817144 下载后直接双击该程序就可以用&#xff0c;十分方便…

2021-07-09

#先引入后面可能用到的包&#xff08;package&#xff09; import pandas as pd from datetime import datetime import backtrader as bt import matplotlib.pyplot as plt %matplotlib auto #正常显示画图时出现的中文和负号 from pylab import mpl mpl.rcParams[font.sans…

Patrick Wyatt:代码没问题 程序却有bug?

摘要&#xff1a;相信每个程序员都遇到过“不可能的bug”&#xff0c;代码没有任何问题却出错了&#xff01;问题肯定是出在操作系统上&#xff0c;或者是工具&#xff0c;甚至是因为计算机硬件的问题&#xff1f;&#xff01;&#xff1f;当然&#xff0c;魔兽之父也不例外&am…