if(i*100+j*10+k==i*i+j*j+k*k)
语句修改为:
if(n==i*i*i+j*j*j+k*k*k)
最小公约数,使用辗转相除得到的(也许你没学过离散数学, 不过过程挺简单)int get_prime(int n, int d)// n为小数,d为大数
{
int r= d%n
while(r!=0)
{
d = n
n = r
r = d%n
}
return n//n为最大公约数
}
最小公倍数是两数之积除以最大公约数即可,
恕我不知道是么是莲花整数,见笑
#include <stdio.h>int main()
{
int x,y,z
for(int i = 100i <1000i++)
{
x = i / 100
y = i % 100 / 10
z = i % 10
if(x*x*x+y*y*y+z*z*z == i)
printf("%d\t", i)
}
printf("\n")
return 0
}