コラッツ予想を試す

コラッツ予想は初めに任意の正の整数\(n\)を定めこれを

\(n\)が偶数の時

\begin{align}
n=\frac{n}{2}
\end{align}

\(n\) が奇数の場合、

\begin{align}
n=3n+1
\end{align}

のように繰り返し更新していくと最終的に\(1\)となるという予想である。

unsigned long long int型を使って巨大な数も試せるようにした。

例えば\(3\)であれば

\begin{align}
3 \to 10 \to 5 \to16 \to 8 \to 4 \to 2 \to 1
\end{align}

となる。

#include<stdio.h>

int main(void){
	unsigned long long int num;
	printf("数値を入力してEnterボタンを押してください\n");

	scanf_s("%lld", &num);

	printf("num=%lld\n",num);

	while (1) {
		if (num % 2 == 1) {
			num = (num * 3) + 1;
		}else {
			num = num / 2;
		}
		printf("%lld \n", num);
		if (num == 1) {
			break;
		}
	}
}

コメント

  1. […] 前回の記事で触れたコラッツ予想を負の数を扱えるよう拡張する。 […]

タイトルとURLをコピーしました