1. 程式人生 > >UVA 10791——Minimum Sum LCM (算數基本定理)

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