首页 > 代码库 > 51Nod 1419 最小公倍数挑战
51Nod 1419 最小公倍数挑战
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1419
题意:
思路:
要想最大,肯定去找尽量大的互质的数,如果不是互质的数,去掉约数后也就变成了互质数。
相邻的数肯定是互质的,如果n是奇数,那么n和n-1也是互质的,此时n*(n-1)*(n-2)就是最大值。
如果是偶数的话,就得去考虑n和n-3是否互质,如果互质,则最大值就是n*(n-1)*(n-3),否则就是(n-1)*(n-2)*(n-3)。
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<cstdio> 5 #include<vector> 6 #include<queue> 7 #include<cmath> 8 using namespace std; 9 10 int n;11 12 int main()13 {14 //freopen("D:\\input.txt","r",stdin);15 while(~scanf("%d",&n))16 {17 if(n<=2)18 {19 printf("%d\n",n);20 continue;21 }22 if(n%2)23 printf("%lld\n",(long long)n*(n-1)*(n-2));24 else25 {26 if(n%3==0)27 printf("%lld\n",((long long)n-1)*(n-2)*(n-3));28 else29 printf("%lld\n",(long long)n*(n-1)*(n-3));30 }31 }32 return 0;33 }
51Nod 1419 最小公倍数挑战
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。