#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