zoukankan      html  css  js  c++  java
  • 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;
    }
    

      

  • 相关阅读:
    前端工程师基础课程作业
    对于API接口设计的几点看法
    socket socket.io
    移动端布局
    angularJS
    bootstrop的应用
    jquery基础
    html5本地存储
    ajax
    数据库类型
  • 原文地址:https://www.cnblogs.com/wintersong/p/5260810.html
Copyright © 2011-2022 走看看