兩個獨立循環分別輸出平方數和立方數,結果未排序且有重複(如 1, 64 既是平方數也是立方數)。
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int results[100]; // 足夠大
int count = 0;
// 收集平方數
for (int i = 1; i*i <= 1000; i++) {
results[count++] = i*i;
}
// 收集立方數
for (int i = 1; i*i*i <= 1000; i++) {
results[count++] = i*i*i;
}
// 排序
qsort(results, count, sizeof(int), compare);
// 去重輸出
for (int i = 0; i < count; i++) {
if (i == 0 || results[i] != results[i-1]) {
printf("%d\n", results[i]);
}
}
return 0;
}
1
4
8
9
16
25
27
36
49
64
81
100
121
125
144
169
196
216
225
243
256
289
324
343
361
400
441
484
512
529
576
625
676
729
784
841
900
961
1000