半素数
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    最近张老师对半素数感兴趣。半素数(semi-prime)是可以表示成两个素数乘积的数。比如4和10是半素数,因为4=2×2,10=2×5。而8不是半素数,因为8=2×2×2。他想知道某一个l到r的闭区间内有多少个这样的数。但是这个问题太困难了,他想让你帮他解决。

输入描述:

输入一行,包含两个数l,r(1<=l<=r<=1010,r-l<=105),表示所求闭区间

输出描述:

    第一行一个数n,表示一共有多少个半素数。
    后面跟n行,每行三个整数pi ai bi,表示pi是半素数,是两个素数ai和bi的乘积
    输出的n个半素数按照递增的顺序。对于每一行,ai<=bi
示例1

输入

复制
1 10

输出

复制
4
4 2 2
6 2 3
9 3 3
10 2 5