类Ramanujan数列的C程序



1729被称为Ramanujan数,源自英国数学家G的一则轶事。H.哈迪在医院看望印度数学家斯里尼瓦萨·拉马努詹时。他讲述了他们的谈话:
"我记得有一次他在普特尼生病时去看望他。我坐过1729号出租车,说这个号码在我看来很无聊,我希望这不是一个不利的预兆。"不,"他回答说,"这是一个非常有趣的号码;它是可以用两种不同方式表示为两个立方体之和的最小数。">
这两种不同的方式是:
1729=1^3+12^3=9^3+10^3
(来源:https://en.wikipedia.org/wiki/1729_(数字(
下一个这样的数字是4104
4104=16^3+2^3=9^3+15^3
我想找到更多这样的数字。我试了好几次,但都没能为它写代码。我写的代码没有运行。

尽管如此,您一定已经展示了您的工作
试试看:

#include <stdio.h>
int main(){
int i, a, b, x, y, k;
printf("Input nos. between which you want to find Ramanujan No.: ");
scanf("%d %d", &a, &b);
for(i=a;i<b;i++){
k=0;
for(x=1;x*x*x<i;x++){
for(y=x+1;x*x*x+y*y*y<=i;y++){
if(x*x*x+y*y*y==i){
k++;
x++;           
}
}
}
if(k==2){
printf("%d ", i);
}
}
return 0;
}

最新更新