1362: B. Mr.Z 的四因子数

1362:[2017 江苏科技大学 程序设计竞赛] B. Mr.Z 的四因子数 (改编)

难度:  倔强青铜     时间限制:  1000MS    空间限制:  64MB    提交数:  166    通过数:  28
题目内容

[2017 江苏科技大学 程序设计竞赛]

B. Mr.Z 的四因子数 (改编)

题目描述

Mr.Z 是一多高超的数学大师,最喜欢研究的领域是数论,由于要经常做各类特殊的整数分布研充,所以他想麻烦你帮他解决一个问题。

考虑这样的一个数 K,它只含有四个因子,比如 10,它只有:1、2、5、10 这四个因子。我们将满足上述性质的数称为四因子数。

现在想请问你在区间 [ a, b ] 内有多少个四因子数。

输入描述

有多组测试数据,每组测试数据占一行。

每一行中,有两个用空格分隔的正整数 a 和 b。

a 和 b 均不超过 70000。

输出描述

对每组测试数据,输出一行答案。

输入样例

1 66666

输出样例

15878

#include <stdio.h>
#include <math.h> 
using namespace std;
bool f(int n)
{
	int i, counter = 0;
	for (i = 2; i * i < n; i++) { //验证sqrt(n)之前的数 
		if (n % i == 0) {
			counter++;
		} 
		if (counter == 2) //超过四因子数的 提前跳出循环
			break;
	}
	if (counter == 1 && i * i != n) //例如16就要排除 
		return true;
	else 
		return false;
}
int main()
{
	int a, b;
	while (scanf("%d %d", &a, &b) != EOF) {
		int cnt = 0;//计数
		for (int i = a; i <= b; i++) {
			if(f(i)) {
				cnt++;
			}
		} 
		printf("%d\n", cnt);
	}
	return 0;
}

不然老超时  我就伤心欲绝过 !!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值