#birthday0410f. [birthday0410_f]おいらの素数生成式
[birthday0410_f]おいらの素数生成式
问题文
素数列的研究自古以来就是许多人努力并且挫折的事情,因而出了名。我也是其中之一。我现在陷入了困境。
前几天,我吹嘘自己发现了只包含素数的数列的通项(生成式),但仔细想一想其实根本不是那么回事,等我意识到的时候已经晚了,结果不得不在公开场合发表了!
说实话,我满脑子想着要找个地缝钻进去,但必须忍耐才能有未来。所以,我考虑了下面的策略!
- 由于素数列在商业上非常有价值,所以不能立即公开其生成式。
- 公开该数列的第1项到第100项。
- 立刻唱一首与素数有关的奇怪歌曲,转移话题,不要提问。
嗯!这样一来,一定能使大家满意,我的地位也会更上一层楼。
任务
求一个一元函数,使得,,...,这100个值尽可能多地成为不同的素数。
但是,由于计算的计算机只能进行32位带符号整数类型的运算,所以必须满足以下约束条件。
- 该表达式只由变量、常数、加减乘除(+,-,*,/)和求余(%),一元的 + 和 - 组成。
- 常数必须能够适应32位带符号整数,并且对于,,...,在计算时出现的所有值也必须能够适应32位带符号整数。
注意:-5
不是常数,而是将常数5应用于一元运算符-的形式。因此,常数都必须是非负的,并且它们的值都必须小于等于2147483647。即-2147483648
是一个无效的表达式。 - 表达式的计算顺序从左到右进行,一元运算符具有最高优先级,乘除和取余次之,加减最后,如果存在括号,则优先级更高。
- 除法是整数除法。整数除法得到的值是代数商去掉小数部分的值(例如,-7/3 = -2)。
- 对于取余,使
(x / y) * y + x % y
的值等于x
的值(例如-7%3 = -1)。 - 不能发生除以零的情况。
- 输出的表达式必须由以下BNF表示中的 符号推导出,不得包含额外的空格等。
<expr> ::= <term> "+" <expr>
| <term> "-" <expr>
<term> ::= <fact> "*" <term>
| <fact> "/" <term>
| <fact> "%" <term>
<fact> ::= "+" <fact>
| "-" <fact>
| "(" <expr> ")"
| <number>
| "n"
<number> ::= <digit>
| <digit> <number>
<digit> ::= "0" | "1" | "2" | "3" | "4"
| "5" | "6" | "7" | "8" | "9"
输入
本问题没有输入。
输出
输出满足任务约束条件的的表达式。
评分标准
计算 ,,...,并根据包含的不同素数数量(记为)以及该表达式的长度(记为)给出得分。但是,当表达式 不满足任务的约束条件或者 时得分为0。否则,每次满足以下条件会给出相应的得分:
- (4分)
- and (5分)
- and (5分)
- and (6分)
- and (15分)
- and (15分)
- and (20分)
- and (230分)
- and (1点赞)
- and (1点荣誉)
这里, 是 JAPLJ 和 kyuridenamida 提供的解中最短的一个的长度,,,, 是秘密常数,满足以下方程:
**注意:**在本问题中,我们将“满足任务约束条件并且 的输出”称为“Accepted”。因此,即使提交了AC
的结果,也可能得到不满分。换句话说,如果返回以下结果,则可能意味着:
- 如果提交结果为
WA
,则表达式 违反了任务的约束条件,或者