/*
斐波那契数列的特点是 第一个和第二个数都是1 从第三个数爱是,该数是前两个树之和
求这个数列的前三十个元素
*/
#include <stdio.h>
void main1()
{
int arr[30] = { 1, 1 };
for (int i = 2; i < 30; ++i)
{
arr[i] = arr[i - 1] + arr[i - 2];
}
for (int i = 0; i < 30; ++i)
{
printf("%d\t", arr[i]);
}
printf("\n");
}
/*
验证100以内的正偶数都能分解成两个素数之和
即验证哥德巴赫猜想100以内(大于2)的正偶数成立,
*/
#include <stdio.h>
bool su(int num)
{
for (int i = 2; i < num; ++i)
{
if (num%i == 0)//能整除
{
return false;//不是素数
}
}
//素数只能被1和本身整除
return true;
}
void main3()
{
int arr[50];//放100以内的素数
int index = 0;
for (int i = 2; i < 100;++i)
{
if (su(i))
{
arr[index] = i;
index++;
}
}
int su1, su2;
for (int i = 4; i <= 100; i += 2)//验证100以内的正偶数
{
int len = sizeof(arr) / sizeof(arr[0]);
for (int j = 0; j < len; ++j)
{
su1 = arr[j];//减数1是素数
su2 = i - su1;
if (su2 <= 0)
break;
if (su(su2))//如果减数2也是素数
{
printf("%d=%d+%d\n", i, su1, su2);
}
}
}
}
/*
尼科彻斯:任何一个整数的立方都可以写成一串连续奇数的和
编程验证其
*/
#include <stdio.h>
int mul_3(int num)
{
return num*num*num;
}
void main()
{
int num;
printf("输入一个整数:");
scanf("%d", &num);
printf("%d*%d*%d=%d=", num, num, num, mul_3(num));
num = mul_3(num);
int sum=0;
for (int i = 1; i < num; i += 2)//奇数
{
int sum = 0;
for (int j = i; sum < num; j += 2)
{
sum += j;
if (sum == num)
{
for (; i < j;i+=2)
{
printf("%d+", i);
}
printf("%d\n", i);
return;
}
}
}
}