#2696. 数字操作
数字操作
【题目描述】
给你两个整数 n 和 m ,两个整数有相同的数位数目。 你可以执行以下操作任意次:
- 从n中选择任意一个不是9的数位,并将它增加1 。
- 从n中选择任意一个不是 0的数位,并将它减少1 。
任意时刻,整数n都不能是一个质数,意味着一开始以及每次操作以后n都不能是质数。
进行一系列操作的代价为n在变化过程中所有值之和。
请你求出将n变为m需要的最小代价,如果无法将n变为m,请你输出 -1 。
【输入格式】
输入一行两个正整数n和m。
【输出格式】
输出一行一个整数,将n变为m需要的最小代价。如果无法将n变为m,则输出 -1。
【数据样例】
【输入数据 1】
10 12
【输出数据 1】
85
【输入数据 2】
4 8
【输出数据 2】
-1
【输入数据 3】
6 2
【输出数据 3】
-1
【说明/提示】
【样例 1 解释】
我们执行以下操作:
增加第一个数位,得到 n = 20 。
增加第二个数位,得到 n = 21 。
增加第二个数位,得到 n = 22 。
减少第一个数位,得到 n = 12 。
总共操作的代价=10+20+21+22+12=85。
【样例 2 解释】
无法将4变成8,4加1变成5,5是质数,故输出-1。
【样例 3 解释】
由于2已经是质数,所以无法将n变成m,故输出-1。
【数据范围】
| 测试点编号 | n和m的范围 |
|---|---|
| 1 | 1≤n,m≤10 |
| 2~5 | 1≤n,m≤1000 |
| 6~10 | 1≤n,m<10000 |
相关
在下列比赛中: