Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void solve(int);
- int main()
- {
- int n;
- while (1)
- {
- scanf("%d", &n);
- if (!n) break;
- solve(n);
- printf("\n");
- }
- }
- int max = 0;
- int num[5000];
- void solve(int n)
- {
- printf("1");
- if (n == 1)
- return;
- int sum = 1;
- int i = 4;
- if (max > 0)
- {
- for (i = 0; i < max && num[i] <= n; i++)
- printf(" %d", num[i]);
- if (i < max && num[i] > n)
- return;
- i = num[max - 1] + 1;
- }
- for (; i <= n; i++)
- {
- double nSqrt = sqrt(i);
- if (nSqrt == (double) ((int) nSqrt))
- {
- printf(" %d", i);
- num[max++] = i;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement