• CF235A 【LCM Challenge】


    这题好毒瘤啊
    (特别是long long的坑,调了半天没调好!!)
    先将你特判一下小于3的话直接输出就是惹,不是的话就判断一下它能不能被2整除如果不能就直接输出n*(n-1)*(n-2)否则进行枚举
    枚举核心代码:

    	LL sum=0;
    	sum=i*j/gcd(i,j);
    	sum=sum*k/gcd(sum,k);
    	ans=max(ans,sum);
    

      求三个数的最小公倍数。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    LL ans,n;
    LL gcd(LL a,LL b){
    	if(!b)return a;
    	return gcd(b,a%b);
    }
    int main(){
    	scanf("%lld",&n);
    	if(n<=2){
    		printf("%lld",n);
    		return 0;
    	}
    	if(!(n%2)){
    		for(LL i=n;i>=n-100;i--){
    			if(i==0)break;
    			for(LL j=n;j>=n-100;j--){
    				if(j==0)break;
    				for(LL k=n;k>=n-100;k--){
    					if(k==0)break;
    					LL sum=0;
    					sum=i*j/gcd(i,j);
    					sum=sum*k/gcd(sum,k);
    					ans=max(ans,sum);
    				}
    			}
    		}
    	}
    	else ans=(n*(n-1)*(n-2));
    	printf("%lld",ans);
    	return 0;
    }
    

      

  • 相关阅读:
    bzoj4289
    bzoj3033
    bzoj3144
    896C
    bzoj4430
    bzoj4455
    bzoj5117
    BZOJ 1564: [NOI2009]二叉查找树
    BZOJ1261: [SCOI2006]zh_tree
    BZOJ1090: [SCOI2003]字符串折叠
  • 原文地址:https://www.cnblogs.com/20020219-liu/p/11609814.html
Copyright © 2020-2023  润新知