10791: Minimum Sum LCM ★★★☆☆ 題組:Problem Set Archive with Online Judge

Slides:



Advertisements
Similar presentations
1 教師敘薪 Q & A 教師敘薪 Q & A 新竹縣立新湖國中 陳淑芬 新竹縣立自強國中 楊美娟
Advertisements

資源問題與環境保育 第 6 章. 學完本章我能 ……  知道中國土地資源的問題與保育  了解中國水資源的問題與保育  知道中國森林資源的問題與保育  能分析自然環境和人文環境如何影響人類 的生活型態  說舉出全球面臨與關心的課題.
寓言 何謂寓言? 寓言中的主角選擇 以動物為主角,形象分析—以成語及諺語中來歸納動物形象 以人為主角,形象分析
第七章 外營力作用 第一節 風化 第二節 崩壞 第三節 侵蝕與堆積.
勿讓權利睡著- 談車禍之損害賠償與消滅時效.
國小教師檢定經驗分享 分享者:胡瑋婷 現職:國語日報語文中心寫作班教師 閱讀寫作營教材編輯及任課講師 榮獲「教育部教育實習績優獎」全國第三名.
11010: Tic-Tac-Tough ★★★★☆ 題組: Problem Set Archive with Online Judge
公務人員 育嬰留職停薪權益.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
大學教、職員之法義務規範與法律效果 台南地檢署林仲斌.
第三課 政府的組織、功能與權限 一、內閣制 壹、民主國家的政府體制 二、總統制 三、混合制 四、小結 一、前言 貳、我國的中央政府體制
中央與地方教育權限 第八組 王湘婷 邱淑婷 全 彥 洪英博
質數(prime).
盧世欽 律師 鼎禾律師聯合事務所 民國 一○四 年 九 月 十八 日
福山國小 100學年度 新生家長始業輔導.
補充: Input from a text file
幼兒環境學習規畫 期末報告 指導老師:蔡其蓁 老師
C語言中可變参數的用法——va_list、va_start、va_arg、va_end参數定義
Chapter 5 遞迴 資料結構導論 - C語言實作.
Introduction to the C Programming Language
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
資料大樓 --談指標與陣列 綠園.
If … else 選擇結構 P27.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
10298: Power Strings ★★☆☆☆ 題組:Problem Set Archive with Online Judge
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
計數式重複敘述 for 迴圈 P
程式設計實習課(四) ----C 函數運用----
11308: Bankrupt Baker ★★☆☆☆ 題組:Problem Set Archive with Online Judge
10066: The Twin Towers ★★★☆☆ 題組:Problem Set Archive with Online Judge
學習單元:N6 數的性質 學習單位:N6-3 用短除法求H.C.F. 和 L.C.M. 學習重點 : 1. 複習因數分解法求
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
小學四年級數學科 8.最大公因數.
10465: Homer Simpson ★★★☆☆ 題組:Problem Set Archive with Online Judge
今天, AC 你 了吗? 2019/4/26.
10902: Pick-up Sticks ★★☆☆☆ 題組:Problem Set Archive with Online Judge
11413 : Fill the Containers ★★★★☆
因數的世界 因數、公因數與最大公因數 朱曉萍編製.
10415: Eb Alto Saxophone Player
10115: Automatic Editing ★★☆☆☆
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
10394: Twin Primes ★★★☆☆ 題組:Problem Set Archive with Online Judge
12797: Letters ★★★☆☆ 題組:Problem Set Archive with Online Judge
※歡迎挑戰,兩人(隊)中先完成連線即算過關!
11058: Encoding ★☆☆☆☆ 題組:Problem Set Archive with Online Judge
Commando War ★★☆☆☆ 題組:Problem Set Archive with Online Judge
if (j…) printf ("… prime\n"); else printf ("… not prime\n");
10328: Coin Toss ★★★☆☆ 題組:Problem Set Archive with Online Judge
674: Coin Change ★★☆☆☆ 題組:Problem Set Archive with Online Judge
1753: Need for Speed ★★☆☆☆ 題組:Problem Set Archive with Online Judge
1757: Secret Chamber at Mount Rushmore
13194: DPA Number II ★★☆☆☆ 題組:Problem Set Archive with Online Judge
( )下列何者正確? (A) 7< <8 (B) 72< <82 (C) 7< <8 (D) 72< <82 C 答 錯 對.
1730: Sum of MSLCM ★★☆☆☆ 題組:Problem Set Archive with Online Judge
11908: Skyscraper ★★★☆☆ 題組:Problem Set Archive with Online Judge
10599: Robots(II) ★★★★☆ 題組:Problem Set Archive with Online Judge
11455: Behold My Quadrangle ★☆☆☆☆
10393:The One-Handed Typist
10107: What is the Median? ★★☆☆☆
10440: Ferry Loading II ★★☆☆☆ 題組:Problem Set Archive with Online Judge
11616:Roman Numerals ★★☆☆☆ 題組:Problem Set Archive with Online Judge
10489: Boxes of Chocolates ★★☆☆☆
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
12439: February 29 ★☆☆☆☆ 題組:Problem Set Archive with Online Judge
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
11621 : Small Factors ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Q1(a) 小偉打算編寫一個程序。該程序把兩個44的表內的數字相加。表3內的數字是由表1和表2應格子內的數字相加而成。例如:
11368: Nested Dolls ★★★☆☆ 題組:Problem Set Archive with Online Judge
1200: A DP problem ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Presentation transcript:

10791: Minimum Sum LCM ★★★☆☆ 題組:Problem Set Archive with Online Judge 解題者:黃啟貿 解題日期:2018年4月19日 題意:任一正整數都可以表示為某一組正整數的LCM. 例如12可以表示 為1,12或12,12或3,4或4,6或1,2,3,4等的LCM. 一個正整數N, 找出一組至少兩個LCM為N的正整數. 可能會有無限種組 合, 此題必須選擇元素總和最小的組合, 並打印此組合元素的總和. 例 如N = 12, 應該打印3 + 4 = 7, 因為3和4的LCM是12並且7是可能組合 的最小總和. 1

解法:以 N 為 LCM 之數個正整數其 GCD 為 1 才會有最小總和, 題意範例: Sample Input Sample Output 12 Case 1: 7 10 Case 2: 7 5 Case 3: 6 解法:以 N 為 LCM 之數個正整數其 GCD 為 1 才會有最小總和, 因此正整數總和為最小之組合為每個質因數之最大次方(仍須為 N 之因數). 最小組合分為兩種情況: (1) N 僅有一個質因數(可能為 N 本身 或 N 的次方根) ---此情況之正整數組合即為 N 與 1, 因此總和為 N + 1. (2) N 有兩個以上的質因數 ---此情況之正整數組合總和為其所有質因數最大次方(仍須為 N 之因數)的總和. (註 1 : 判斷是否為質數只須從 1 找到 根號 N 仍不存在 1 以外的因數為止) (註 2 : 大於等於 根號 N 的質因數至多只有 1 個) 2

long long int func(int x){ int i, j, num, temp, sq; 解法範例: long long int func(int x){ int i, j, num, temp, sq; // num = x 的質因數個數, temp = x 的暫存值, sq = x 的平方根 long long int sum; // 所有質因數最大次方後之總和 int fac[MAX][2] = {}; // 存取每個質因數及其次方數 if(x == 1) // 若 x = 1, 則組合為 (1, 1) return (1 + 1); else if(prm(x)){ // prm: 回傳是否為質數 sum = x; // 若 x 為質數, 則質因數僅有 x 本身, 組合為 (1, x) return (sum + 1); } 3

else{ num = sum = 0, temp = x, sq = (int)(sqrt((double)x) + 0 else{ num = sum = 0, temp = x, sq = (int)(sqrt((double)x) + 0.5); // 變數初始化 for(i = 1; i <= sq; i++) // 找到根號 x 為止, 仍有所剩之數即為一次質因數 if(prm(i) && temp % i == 0){ // 判斷是否為質因數 for(j = 0; temp % i == 0; j++) // 找出質因數與其最大次方 temp /= i; fac[num][0] = i, fac[num][1] = j; // 記錄質因數與其最大次方 num++; // 質因數個數計數 + 1 if(temp <= 1) // 若已找完所有質因數則跳出迴圈 break; } if(temp > 1) // 大於根號 x 之僅剩一次質因數 fac[num][0] = temp, fac[num][1] = 1, num++; for(i = 0; i < num; i++) // 所有質因數最大次方後作總和 sum += (long long int)(pow((double)fac[i][0], fac[i][1]) + 0.5); if(num <= 1) // 只存在一個質因數(即 x 為其質因數作最大次方), 組合為(1, x) return (sum + 1); else // 存在多個質因數 return sum; 4

題意範例(增改): 解法範例(增改): (1) N 僅有一個質因數(可能為 N 本身 或 N 的次方根) Sample Input: Sample Output: 12 7 (12 = 2 ^ 2 * 3  2 ^ 2 + 3 = 7) 10 7 (10 = 2 * 5  2 + 5 = 7) 5 6 (5 = 5  5 + 1 = 6) 解法範例(增改): (1) N 僅有一個質因數(可能為 N 本身 或 N 的次方根) N 本身 -- ex: 7 = 7  7 + 1 = 8 N 的次方根 -- ex: 9 = 3 ^ 2  3 ^ 2 + 1 = 10 (2) N 有兩個以上的質因數 ex: 18 = 2 * 3 ^ 2  2 + 3 ^ 2 = 11 24 = 2 ^ 3 * 3  2 ^ 3 + 3 = 11 36 = 2 ^ 2 * 3 ^ 2  2 ^ 2 + 3 ^ 2 = 13 750 = 2 * 3 * 5 ^ 3  2 + 3 + 5 ^ 3 = 130 5