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

posted @ 2016-07-27 18:15  阿豪boy  阅读(556)  评论(0编辑  收藏  举报