要求是列出所有与给定数字的 1 不同的除数,这些除数本身不能被完美平方整除。
到目前为止,这是我的代码:
#include <stdio.h>
#include <math.h>
int main() {
int n, i, temp;
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
if (n % i == 0) {
temp = sqrt(i);
if (temp * temp != i)
printf("%d ", i);
}
}
return 0;
}
如果我输入 20,那么我得到1 2 4 5 10 20
. 我已经消除了所有完美平方的数字,即:4
。
现在,我有1 2 5 10 20
。在这里我不必考虑1
这意味着我将拥有2 5 10 20
.
现在,最后,我必须消除所有可以被完美平方整除的数字,我该怎么做?
示例:20
将被淘汰,因为 4 x 5 = 20 和 4 是一个完美的正方形。
预期输出:2 5 10