UVA 10791——Minimum Sum LCM (算數基本定理)
題目大意 : 給你一個數n,讓你將這個數分解成至少兩個數,對每一個分解式進行求和,算出其中最小的那一個。
為什麼按照算數基本定理算出來的數字就是最小的吶:因為每一個數字都可以運用算數基本定理進行分解,如果所用的因數不是所分解的這些質數,那麼那樣求出來的和一定比這樣分解的數大,因為那些不為素數的數字還可以再繼續分。
算數基本定理: 任何一個大於1的自然數 N,那麼N可以唯一分解成有限個質數的乘積N=P1a1P2a2P3a3......Pnan,這裡P1<P2<P3......<Pn均為質數,其中指數ai是正整數。這樣的分解稱為N 的標準分解式
Code:
#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; typedef long long LL; int main() { LL n; int kase = 0; while(scanf("%lld", &n) && n != 0) { LL a, flag = 0, ans = 0; LL x = (long long)sqrt(n) + 10; for(LL i = 2; i <= sqrt(n); i++) { a = 0; LL temp = 0; if(n %i == 0) { flag++; temp = 1; while(n%i == 0) { temp *= i; n /= i; } } ans += temp; } if(flag == 0) ans = n+1; else if(flag == 1 || n != 1) ans += n; printf("Case %d: %lld\n",++kase, ans); } return 0; }
好好加油!!!
相關推薦
UVA 10791——Minimum Sum LCM (算數基本定理)
題目連結 題目大意 : 給你一個數n,讓你將這個數分解成至少兩個數,對每一個分解式進行求和,算出其中最小的那一個。 為什麼按照算數基本定理算出來的數字就是最小的吶:因為每一個數字都可以運用算數基本定理進行分解,如果所用的因數不是所分解的這些質數,那麼
uva 10791 Minimum Sum LCM(算術基本定理)
大意:給出一個數字n,LCM(q1,q2,……,qk)=n,求解q1,a2……qk的最小和。 分析:剛開始讀錯題了(又讀錯T_T),是一系列的數字之和。 由算術基本定理,,同時,發現如果,是最小的,也就是說如果是由產生的,那麼積是最小的,同時是一定的。比如,得到: 那麼和
LightOJ 1236 Pairs Forming LCM(算數基本定理)
i+1 clas while 包含 兩個 min family clu eof 題意:在a,b中(a,b<=n)(1 ≤ n ≤ 1014),有多少組(a,b) (a<b)滿足lcm(a,b)==n; 先來看個知識點: 素因子分解:n = p1 ^ e
Aladdin and the Flying Carpet LightOJ - 1341(算數基本定理)
題目連結:qaq 題意:找出符合的因子對數的個數 思路:知道算數基本定理後就簡單了(感覺和暴力的複雜度一樣啊QAQ。。難受) 附上程式碼: #include<cstdio> #include<cmath>
LightOJ-1236- Pairs Forming LCM (算術基本定理)
原題連結: Find the result of the following code: long long pairsFormLCM( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) for( int j
LightOJ 1236 Pairs Forming LCM(算術基本定理)
LightOJ 1236 Pairs Forming LCM 題意: long long pairsFormLCM( int n ) { long long res = 0;
codeforces#1154G. Minimum Possible LCM(最小公倍數)
long long names main swap can $1 space force class 題目鏈接: http://codeforces.com/contest/1154/problem/G 題意: 有n個數,每個數的值為$a_i$ 找到一個最小的
UVa 10375 - Choose and divide(唯一分解定理)
ide clas 數組 AI AS lin buffered ring buffere 鏈接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_p
nefu 118 n!後面有多少個0(算數基本定理)
個數 算術 算數 end OS 因式分解 大於 一個數 family 題意:從輸入中讀取一個數n,求出n!中末尾0的個數。 思路:階乘後的數很大,不可能直接計算的,對於任意一個正整數,若對其進行因式分解,那麽其末尾的0必定可以分解為2*5,在這裏,每一個0必然和一個因子5對
LightOJ-1336-Sigma Function (算術基本定理)
原題連結: Sigma function is an interesting function in Number Theory. It is denoted by the Greek letter Sigma (σ). This function actually denotes th
hdu4479 (數學題)(算術基本定理)
題目大意 給定一個三元組\((x,y,z)\)的\(gcd\)和\(lcm\),求可能的三元組的數量是多少,其中三元組是的具有順序的 其中\(gcd\)和\(lcm\)都是32位整數範圍之內 由算術基本定理可以得知: 如果$k=gcd(m,n) \(則\) k_p=min(m_p,n_p)$ 如果\(
LightOJ 1341 Aladdin and the Flying Carpet(算術基本定理)
LightOJ 1341 Aladdin and the Flying Carpet 題意: 輸入一個矩形面積,以及矩形邊長的最小值,已知矩形不是正方形,求有多少種邊長組合。 思路
1341(算數基本定理)
It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here we are concerned about the first m
LightOJ 1236 Pairs Forming LCM(唯一分解定理)
題目分析 思路:把n分解成素因數的形式n=p1^c1+p2^c2+…pm^cm 假設已找到一對(a,b)的lcm=n 有a=p1^d1+p2^d2+…pm^dm b=p1^e1
Aladdin and the Flying Carpet(算術基本定理)
It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a powerful Genie. Here we are concerned about the first
[質因數分解]UVa10791 Minimum Sum LCM
uva10791 系列 i++ 一個 scan can 證明 輸出 題目 題目大意 輸入整數n (1<=n<2^31),求至少兩個正整數,使得它們的最小公倍數為n,且這些整數的和最小,輸出最小的和。 (LRJ小紫書P317頁例題) 思考 看LRJ的
UVA - 10791 分解質因數(唯一分解定理)
參考https://www.cnblogs.com/scau20110726/archive/2013/01/18/2866101.html 題意(就是因為讀錯題意而wa了一次):給一個數字n,範圍在[1,2^23-1],這個n是一系列數字的最小公倍數,這一系列數字的個數
算數基本原理(唯一分解定理)
唯一分解定理: 任意一個大於0的正整數都能被表示成若干個素數的乘積且表示方法是唯一的;整理可以將相同素數的合併 X=p1^a1*p2^a2……pn^an; p1..pn 為素數 數X的因子數
【數論】Minimum Sum LCM, UVa10791【唯一分解定理】【素數篩法】
唯一分解定理+素數篩法 #include<bits/stdc++.h> using namespace std; typedef long long LL; int cnt,n,prime
算數基本定理(求一個數所有約數的個數)——一道OJ題目
#include <cstdio> #include <iostream> #include <map> #include <set> using namespace std; int min(int a,int b) { if(a>b) retur