问题 U: H半素数

内存限制:128 MB 时间限制:5 S
题面:传统 评测方式:文本比较 上传者:
提交:135 通过:37

题目描述

    给你一个由4n+1的数组成的集合(该集合中每个数都是“4的倍数+1),即H={1,5,9,13,17,...},该集合中的数被称为“H数”,乘法在“H数”组成的集合内是封闭的。在这个集合中只能被1和本身整除的数叫做“H-素数”(不包括1 )。

一个“H-合数”是一个能且只能分解成两个“H-素数”乘积的数(可能有多种分解方案)。比如441=21*21=9*49,所以441是“H-合数”。125=5*5*5,所以125不是“H-合数”。

求0到h范围内“H-合数”的个数。

视频讲解

输入格式

输入包含若干行(<106),每行一个小于等于1000001的整数h,输入0时表示结束。



输出格式

输出多行,对于每一行输入,输出两个数,第一个数为h,第二个数为以内的H-合数的个数。



输入样例 复制

21
85
0

输出样例 复制

21 0
85 5

数据范围与提示

输入输出采用:
 while(~scanf("%d",&n))
    {
        if(n == 0)break;
        printf("%d %d\n",n,ans[n]);
    }

分类标签