• UVA 10791 最小公倍数的和


    这道题目细节琐碎,稍不注意就会WA ,特别是大数的范围,一开始没有把n声明为long long 导致最大的那个数 2147483647 结果为0 还有一开始用了 pow() 这个函数,也应该用double去接受结果。

    #include<iostream>
    #include<string>
    #include<string>
    #include<string.h>
    #include<stdio.h>
    #include<queue>
    #include<math.h>
    #include<vector>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    int main(){
      int cnt,t;
      long long n,sum,temp,m=0;
      while(cin>>n){
              m++;sum=0,cnt=0;
              t=sqrt(n+1);
            if(n==0)  break;
            printf("Case %d: ",m);
            if(n==1) {cout<<2<<endl;continue;}
           for(int i=2;i<=t;i++){
             if(n%i==0){
                 cnt++; temp=1;
                while(n%i==0){
                    temp*=i;
                    n=n/i;
                }
                sum+=temp;
             }
           }
           if(n>1){
            sum+=n;
            cnt++;
           }
    
         if(cnt==1)   {printf("%lld
    ",sum+1);}
         else if(cnt==0) printf("%lld
    ",n+1);
         else  printf("%lld
    ",sum);
    
      }
    
       return 0;
    }
    

      

  • 相关阅读:
    第 9 章
    第 8 章
    第 7 章
    第 6 章
    第 5 章
    第 4 章
    跳舞链解数独
    minic 类型声明与变量定义句型处理
    minic 动作句型处理
    minic 符号表
  • 原文地址:https://www.cnblogs.com/wintersong/p/5260810.html
Copyright © 2020-2023  润新知