因为 (1le nle 100000),所以直接用变量来存储 (s) 显然是不可行的。
我们来从数学方面来考虑一下这个问题。既然构造的数 (s):
-
大于 (0)
-
有 (n) 位
-
任何一个数位上的数都不能为 (0)
-
不能被任何一个数位上的数整除
所以我们很快能想到一种滑稽的构造方式:当 (n=1) 时,无法构造出 (s),输出-1
;否则,(s) 的最高位为 (2),其余数位皆为 (3)。显然,这样构造出来的 (s) 是正确的。
Code:
int main() {
int t;cin>>t;
while (t--) {
int n;cin>>n;
if (n==1) {cout<<"-1
";continue;}
cout<<2;
for (int i=1;i<n;i++) cout<<3;
putchar('
');
}
return 0;
}