【发布时间】:2020-10-26 16:08:51
【问题描述】:
您能否解释一下为什么 var ndx 每次都在变化,所以 value 也是如此(如果使用 print 函数),但不要在 for 循环中,所以每次我得到相同的值 (2)。我该如何解决这个问题?
int PerfNum(int ww)
{
int prime[20] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41};
int ndx = 0;
for (int base = 2; base <= sqrt(ww); base++) {
for (int pw = prime[ndx]; ww >= pow(base, pw); ndx++) { // expected value is in array
//for (int pw = prime[ndx]; ww >= pow(base, prime[ndx]); pw++ ) { this one works but...
if (ww == pow(base, pw)) {
return 1;
}
}
}
return 0;
}
【问题讨论】: