CF1326A - Bad Ugly Numbers 题解

因为 \(1\le n\le 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\n";continue;}
		cout<<2;
		for (int i=1;i<n;i++) cout<<3;
		putchar('\n');
	}
	return 0;
}
posted @ 2020-03-26 15:45  Aehnuwx  阅读(179)  评论(0编辑  收藏  举报