** 2007 - 半质数 --- 素数筛
**来源:东方博宜oj oj.czos.cn
*解法一:(线性筛)
#include<bits/stdc++.h>
using namespace std;
const int N=5e6+10;
bool f[N];
int primes[N],cnt=0;
int s,e;
int main()
{
cin>>s>>e;
f[0]=1;
f[1]=1;
for(int i=2;i<=e;i++)
{
if(f[i]==0)
{
primes[++cnt]=i;
}
for(int j=1;i*primes[j]<=e;j++)
{
f[i*primes[j]]=1;
if(i%primes[j]==0) break;
}
}
int sum=0;
for(int i=1;primes[i]*primes[i]<=e;i++)
{
for(int j=i;primes[i]*primes[j]<=e;j++)
{
if(primes[i]*primes[j]>=s) sum++;
}
}
cout<<sum;
return 0;
}
*解法二:
#include<bits/stdc++.h>
using namespace std;
const int N=5e6+10;
bool f[N];
int s,e,c=0;
int main()
{
cin>>s>>e;
for(int i=2;i*i<=e;i++)
{
if(f[i]==0)
{
for(int j=i*i;j<=e;j+=i)
{
f[j]=1;
}
}
}
for(int i=2;i*i<=e;i++)
{
if(f[i]==0)
{
for(int j=i;i*j<=e;j++)
{
if(i*j>=s&&!f[j]) c++;
}
}
}
cout<< c;
return 0;
}
**2137 - 质因子2
**来源:东方博宜oj oj.czos.cn
#include<bits/stdc++.h>
using namespace std;
long long n;
int main()
{
cin>>n;
for(int i=2;i<=sqrt(n);i++)
{
while(n%i==0)
{
cout<<i<<endl;
n/=i;
}
}
if(n>1) cout<<n<<endl;
return 0;
}