027フィボナッチ数列
フィボナッチ(フィボナッチ)シーケンスの特性:最初の1と2番目の数は1、3番目の開始数、この数は最初の2つの合計であり、要素30の列数を求める前に
、数学的にはフィボナッチシーケンスは再帰的な方法で定義され
ます。Fの添え字を配列の添え字として扱います。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
long f[100];
int i;
f[0] = 0;
f[1] = 1;
f[2] = 1;
for(i = 3; i <= 30; i++) //从第3项开始,每项等于前2项之和
{
f[ i ] = f[i - 1] + f[i - 2];
}
for(i = 0;i <= 30; i++)
{
printf("%10ld", f[i]);
if(i % 5 == 0) //每5个元素进行一次换行
{
printf("\n");
}
}
}
028ゴールドバッハの予想
100以内の正の偶数が2つの素数の合計に分解できることを確認します。つまり、ゴールドバッハの予想が100以内の正の偶数(2より大きい)に当てはまることを確認します。
といった:
偶数を2つの素数の合計として表す方法は、同じ水平線上の青と赤の交点の数に等しくなります。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
int ss(int i)
{
int j;
if(i <= 1) //小于1的数不是素数
{
return 0;
}
if(i == 2) //2是素数
{
return 1;
}
for(j = 2; j < i; j++) //对大于2的数进行判断,素数:除了一和他本身
{
if(i % j == 0)
{
return 0;
}
else if(i != j + 1)
{
continue;
}
else
{
return 1;
}
}
}
main()
{
int i, j, k, flag1, flag2, n = 0;
for(i = 4; i < 100; i += 2)
{
for(k = 2; k <= i / 2; k++)
{
j = i - k;
flag1 = ss(k); //判断拆分出的数是否是素数
if(flag1)
{
flag2 = ss(j);
if(flag2) //是素数拆分
{
printf("%3d = %3d + %3d,", i, k, j);
n++;
if(n % 5 == 0)
{
printf("\n");
}
}
}
}
}
printf("\n");
}
- 正の偶数を2つの部分に分解するには、2つの部分を判断します。両方が素数の場合は質問の意味が満たされ、そうでない場合はもう一度判断します。
029ニコシュの定理
ニコッシュの定理:整数の任意の立方体は、一連の連続した奇数の合計として記述できます。プログラミングを使用して定理を検証します。たとえば、5を入力して、結果を実行します。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
int i, j, k = 0, l, n, m, sum, flag = 1;
printf("请输入一个数:\n");
scanf("%d", &n);
m = n * n * n; //计算输入值的立方
i = m / 2 ; //立方值得一半
if(i % 2 == 0) //为偶数加一
{
i = i + 1;
}
while(flag == 1 && i >=1) //当i大于等于1且flag=1时执行该语句
{
sum = 0;
k = 0;
while(1)
{
sum += (i - 2 * k); //奇数累加求和
k++; //输出值判断
if(sum == m) //sum 和m相等,输出累加过程
{
printf("%d * %d * %d = ", n, n, n, m);
for(l = 0; l < k-1; l++)
{
printf("%d + ", i - l *2);
}
printf("%d\n", i - (k - 1) * 2);
flag = 0;
break;
}
if(sum > m) //超过退出重新计算
{
break;
}
}
i -= 2; //使初始值减小
}
printf("\n");
}
- 最初に、この連続する奇数の文字列の最大値を決定します。これは、このように分析できます。任意のキューブ値(合計)は半分(x)です。奇数の場合、x + x +2の値は次のようになります。合計よりも大きい場合、この連続する奇数の文字列の最大値はxを超えません。xが偶数の場合、奇数に変換する必要があります。x+であるため、奇数に1を加えたものになります。 1 + x-1は合計に正確に等しいので、xが偶数の場合、文字列は連続します。奇数の最大値はx + 1を超えません。範囲を決定した後、最大値から徹底的に開始できます。
参照:
ゴールドバッハの予想:https://blog.csdn.net/bjweimengshu/article/details/103776026