n的范围为此时,for循环使用i*i<=n为截至条件,可能会炸, 使用long long,或者i<=sqrt(n)可以解决
#include<bits/stdc++.h>
using namespace std;
#define mem(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define ll long long
#define ull unsigned long long
#define IOS ios::sync_with_stdio(0),cin.tie(0)
#define gcd(a,b) __gcd(a,b)
#define ft first
#define sd second
#define endl '\n'
#define PI acos(-1.0)
#define lcm(a,b) a/gcd(a,b)*b
#define INF_INT 0x3f3f3f3f
#define INF_LONG 4557430888798830399
//inline void print(__int128 x)
//{
// if(x<0) {putchar('-'); x=-x;}
// if(x>9) print(x/10);
// putchar(x%10+'0');
//}
//inline int read()
//{
// int s=0,x=1;
// char ch=getchar();
// while(ch<'0'||ch>'9') {if(ch=='-') x=-1; ch=getchar();}
// while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar(); }
// return s*x;
//}
int main()
{
int n=2147483647;
cout<<sqrt(n)<<endl;
for(int i=46339; i*i<=n; i++)
{
cout<<i*i<<endl;
if(i*i<0) break;
}
return 0;
}