C语言验证验证10以内尼克斯彻定理
问题描述:
验证尼克斯彻定理,即任何一个整数的立方都可以写成一串连续奇数的和,如下所示: 13 =1 23=3+5 33=7+9+11 43=13+15+17+19
1 #include <stdio.h> 2 3 //输出i的尼克斯彻定理表达式 4 void fun(int i); 5 6 int main(int argc, char *argv[]) 7 { 8 int i; 9 for(i=1;i<=10;i++){ 10 fun(i); 11 } 12 return 0; 13 } 14 15 void fun(int i){ 16 int n=1,k,sum=0; 17 for(n=1;n<=i*i*i;n=n+2){ 18 k=n; 19 while(sum<i*i*i){ 20 sum=sum+k; 21 k=k+2; 22 } 23 if(sum==i*i*i){ 24 printf("%d^3=%d+...+%d\n",i,n,k-2); 25 } 26 sum=0; 27 } 28 } 29 30
输出:
1^3=1+...+1
2^3=3+...+5
3^3=7+...+11
3^3=27+...+27
4^3=1+...+15
4^3=13+...+19
4^3=31+...+33
5^3=21+...+29
5^3=125+...+125
6^3=7+...+29
6^3=31+...+41
6^3=51+...+57
6^3=107+...+109
7^3=43+...+55
7^3=343+...+343
8^3=17+...+47
8^3=57+...+71
8^3=125+...+131
8^3=255+...+257
9^3=1+...+53
9^3=73+...+89
9^3=241+...+245
9^3=729+...+729
10^3=31+...+69
10^3=91+...+109
10^3=247+...+253
10^3=499+...+501