一本通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.pswp.cn/news/449805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449805.shtml
英文地址,請注明出處:http://en.pswp.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…