• UVA 10791 Minimum Sum LCM


    唯一分解定理

    把n分解为 n=a1^p1*a2^p2*...的形式,易得每个ai^pi作为一个单独的整数最优。

    坑:

      n==1          ans=2;

      n因子种数只有一个     ans++;

      注意溢出。

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 typedef long long ll;
     6 
     7     ll ans=0;
     8     ll n;
     9 ll sign[100000];
    10 ll pri[100000];
    11 int tot;
    12 
    13 void getpri (){
    14     memset (sign,0,sizeof sign);
    15     sign[0]=sign[1]=1;
    16     for (int i=2;i*i<100000;i++)
    17         if (!sign[i])
    18             for (int j=i*i;j<100000;j+=i)
    19                 sign[j]=1;
    20     tot=0;
    21     for (int i=2;i<100000;i++)
    22         if (!sign[i])
    23             pri[tot++]=i;
    24 }
    25     
    26 ll solved (){
    27     if (n==1)
    28         return 2;
    29     ll ans=0;
    30     int flag=0;
    31     for (int i=0;i<tot&&pri[i]*pri[i]<=n;i++){
    32         ll temp=0;
    33         if (n%pri[i]==0){
    34             temp=1;
    35             flag++;
    36             while (n%pri[i]==0){
    37                 temp*=pri[i];
    38                 n/=pri[i];
    39             }
    40         }
    41         ans+=temp;
    42     }
    43     if (n!=1){
    44         flag++;
    45         ans+=n;
    46     }
    47     if (flag<=1)
    48         ans+=1;
    49     return ans;
    50 }
    51 
    52 int main (){//int a=46341;cout<<a*a<<" "<<(1<<31)<<endl;
    53     int kase=0;
    54     getpri ();
    55     while (cin>>n&&n){
    56         ans=solved ();
    57         cout<<"Case "<<++kase<<": "<<ans<<endl;
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    面试问题
    知识点整合
    前端错误
    基于.NET平台常用的框架整理
    BFC和haslayout
    javascript面向对象
    javascript变量的作用域
    2014-05-26 总结
    2014-05-23 总结
    PHP实现mvc模式的思想
  • 原文地址:https://www.cnblogs.com/gfc-g/p/3953796.html
Copyright © 2020-2023  润新知