前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >欧拉计划十四——最长考拉兹序列

欧拉计划十四——最长考拉兹序列

作者头像
lop
发布2019-03-13 17:01:47
7670
发布2019-03-13 17:01:47
举报
文章被收录于专栏:小六小六小六

最长考拉兹序列

在正整数集上定义如下的迭代序列:

n → n/2 (若n为偶数) n → 3n + 1 (若n为奇数)

从13开始应用上述规则,我们可以生成如下的序列:

13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1

可以看出这个序列(从13开始到1结束)共有10项。尽管还没有被证明,但我们普遍认为,从任何数开始最终都能迭代至1(“考拉兹猜想”)。

从小于一百万的哪个数开始,能够生成最长的序列呢?

注: 序列开始生成后允许其中的项超过一百万。

#include <stdio.h>
 
int main()
{
	int i, k, ii = 0, max = 0;
	long long n;
	
	for(i = 13; i <= 1000000; i++)
	{
		k = 1; n = i;
		while(!(n == 1))
		{
			if(n % 2 == 0)
			{
				n /= 2;
				k++;
			}
			else
			{
				n = 3 * n + 1;
				k++;
			}
		}
		
		if(max < k)
		{
			max = k;
			ii = i;			
		}
	}
	printf("%d %d", max, ii);
	
	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年02月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最长考拉兹序列
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档