[codeforces 1326A] Bad Ugly Numbers 构造由2,3,4组成的不能被3整除的奇数

Codeforces Global Round 7   比赛人数10630

[codeforces 1326A]  Bad Ugly Numbers   构造由2,3,4组成的不能被3整除的奇数

总目录详见https://blog.csdn.net/mrcrack/article/details/103564004

也在线测评地址https://codeforces.ml/contest/1326/problem/A

ProblemLangVerdictTimeMemory
A - Bad Ugly Numbers GNU C++11Accepted31 ms0 KB

看完题目,第一直觉,质数肯定满足题意,妈呀,第一题,就要用到质数线性筛,题目,再定睛再看数据范畴,1≤n≤10^5,

质数线性筛仅能做到n=7的情况,即处理到10000000.

再重新读题,有些熟悉的想法,涌了上上,

除了个位数,其他位的数,全用2,

个位数,用奇数,1,3,5,7,9跳了出来,1,5不符合题意,因构造出来的数,都能整除1,5

7,9不可控,因构造出来的数,什么时候能整除7,9不知道。

3可控,能整除3的数,只要,各个位上的数字和,能整除3即可

若构造出的数能被3整除,只需将其中的一个2换成4.

构造过程如下

n=1
输出-1

n=2
23
(2+3)%3==2  23不能被3整除
输出23

n=3
223
(2+2+3)%3=1   223不能被3整除
输出223

n=4
2223
(2+2+2+3)%3=0    2223能被3整除
继续构造
2243
(2+2+4+3)%3=2   2243不能被3整除
输出2243

AC代码如下

#include <stdio.h>
int main(){
	int t,n,i,sum;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n),sum=0;
		if(n==1)printf("-1\n");
		else{
			for(i=1;i<=n-2;i++)printf("2"),sum+=2;
			if((sum+2+3)%3==0)printf("4");
			else printf("2");
			printf("3");
			printf("\n");
		}
	}
	return 0;
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值