本题目来自洛谷网

解一元二次方程的烦恼

题目背景

JosephZheng 在写数学作业的预习。他往往使用 Casio 来帮忙解一元二次方程。但是 Casio 有一个问题,就是当 Δ=b24ac\Delta=b^2-4ac 为一个大素数或大合数时,其开平方的结果会以小数显示,而不是老师要求的二次根式形式。JosephZheng 很是苦恼,一遇到这种情况就要手动解方程。一天他再也忍不住了,于是打开了电脑,编了一个 prime 程序……于是悲剧的你就要跟着疯狂的 JosephZheng 一起编这个程序,呵呵……

题目描述

给你一个大数 NN(不一定在 long long 范围内),让你进行素性判断,然后分解质因数。当然,初中数学题不可能有大于 long long 的数让你判断素性,因此超过范围的数可以忽略不计。为了让程序更加贴心,JosephZheng 多了一些要求,会在输入输出中给出具体情况。

输入格式

一个大数 NNNN+N \in \mathbb{N} ^+),其中这个数的各个数位之间可以插入各种符号,例如 12341234 可以为 1 - 2alsdkjf3!@¥%!@@@##¥……!¥#-4 等。你需要在这一长串乱码中找出这个要判断的数。输入数据可能有多组,如果读到一行没有数字的字串即结束。字符串长度可能大于 255255

输出格式

在读入数据之前先输出 Enter the number=,需要换行。

然后输出 Prime?,问号后有一个空格,但不要换行。

如果是质数则输出 Yes! 否则输出 No!。此时换行。

若果是质数就 halt,若是小于 22 的数则在输出 No! 后也 halt。若是合数则分解质因数。如果该数大于四千万则输出 The number is too large!,然后 halt。否则分解质因数。输出结果的方式在输出样例中会详细给出。每组数据之间空一行。

样例 #1

样例输入 #1

4
eed

样例输出 #1

Enter the number=
Prime? No!
4=2^2

Enter the number=

样例 #2

样例输入 #2

2
end

样例输出 #2

Enter the number=
Prime? Yes!

Enter the number=

样例 #3

样例输入 #3

-1
adfs

样例输出 #3

Enter the number=
Prime? No!

Enter the number=

样例 #4

样例输入 #4

1234###24#@13#@¥!1
hehe

样例输出 #4

Enter the number=
Prime? No!
The number is too large!

Enter the number=

样例 #5

样例输入 #5

1.5
1
1234324123512343123
@~@~@~@

样例输出 #5

Enter the number=
Prime? No!
15=3^1*5^1

Enter the number=
Prime? No!

Enter the number=
Prime? No!
The number is too large!

Enter the number=

样例 #6

样例输入 #6

12
halt@@

样例输出 #6

Enter the number=
Prime? No!
12=2^2*3^1

Enter the number=
作者:admin  创建时间:2024-08-08 19:57
最后编辑:admin  更新时间:2024-08-10 21:09