题目:(题目跟分析基本都是书上,我只是敲几个代码跟大家分享)
无平方因子的数。 给出正整数n,m。区间[n,m]内 “无平方因子” 的数有多少个??
整数p无平方因子,当且仅当不存在k>1,使得p是k^2的倍数. 1<=n<=m<=10^12; n-n<=10^7
分析:
直接枚举肯定会超时,
使用的方法和筛选素质类似的,对于不超过 sqrt(m)的所有素数p,筛掉区间[n,m]内p^2的倍数
以下是我的写代码(没有提交过OJ,但我尝试过一些数据,没有错。如果不妥还望指出)
<span style="font-size:24px;">#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"math.h