一道c语言题目?怎么优化代码

Jaanai最近知道了质数的定义是指有且只有两个因数的自然数。而Jaanai在写数学题的时候,她突然发现有很多自然数刚好拥有3个因数,她感到非常神奇,于是便把这种数命名为“Jaanai数”。但是现在她碰到一个难题,想让你帮她判断一个数是否为“Jaanai数”。

(提示:建议使用并修改质数筛函数)

输入格式:

一行输入n个正整数且不为1。

输出格式:

n行,第i行代表第i个数是否为“Jaanai数”。如果是,输出“TQL!”;如果不是,输出“TCL!”。

样例输入:

4 9 16 25 36 49 64 81 100

样例输出:

TQL!

TQL!

TCL!

TQL!

TCL!

TQL!

TCL!

TCL!

TCL!

数据范围:

n <= 10000000

给出的每个正整数均小于等于4e8

这个数据太大了,如果限定1s,不管优不优化,在这个数据量的前提下,每一次都去求有多少个因子,都是傻逼行为。

所以换一个思路,质数的平方数只有三个因数,所以答案应该是,判断给的这个数 是否是两个质数相乘。两个质数相乘,好像在去年杭电夏令营还是牛客出的暑期的题里面有,没打ACM了,先前的回答神志不清,修改了一下