cf1038BNon-CoprimePartition,数论

1~n的和:(1+n)n/2
所以和在1~n中是n或者n/2的倍数
提出n(因为不是每个n都有n/2)有:(n-1)n/2
当n为奇数时:(n-1)是偶数,可以被2整除;只有n=1时例外,提出n后0和1gcd不满足,分析除本选法其他方法也没法实现
当n为偶数时:n和n/2除因数2以外还有其他因数,所以gcd>1;只有2例外,2和1gcd==1,分析除本选法外其他方法也没法实现
所以综上
#include <iostream>
using namespace std;

int n;

int main(int argc, char** argv) {
	cin>>n;
	if(n==1||n==2) puts("No");
	else{
		puts("Yes");
		printf("1 %d\n%d ",n,n-1);
		for(int i=n-1;i>=1;i--)
			printf("%d ",i);
	}
	return 0;
}



全部评论

相关推荐

06-11 15:52
东南大学 C++
问了一下hr,这个回答是G了吗
椛鸣:我遇到过 我给你翻一下 对不起 我之前把你当备胎了 现在我人已经招满了 ***吧
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务