题目:
分析:虽然我第一次想就想到了,而且和题解差不多,但是在写代码过程中,漏洞百出,体现出自己错误+垃圾的代码水平。
代码:
#include<bits/stdc++.h>
using namespace std;
int A[100005];
int main()
{
memset(A,-1,sizeof(A));
for(int i=2;i<=100001;i++)
{
if(A[i]!=-1) continue;
for(int j=2;j*i<=100004;j++)
{
A[j*i]=1;
}
}
int a,b,c;
cin>>a>>b>>c;
int B[100005];
memset(B,0,sizeof(B));
int minn=1;
int ans=1;
for(int i=c;i<=b;i++)
{
if(A[i]==-1)
{
if(minn*i>b) {
int j=1;
for(;j*i<=b;j++)
{
B[j*i]=1;
}
if(j>2||i>=a) ans++;
continue;
}
if(minn==1)
{
minn=i;
}
for(int j=1;j*i<=b;j++) B[j*i]=1;
}
}
for(int i=a;i<=b;i++) if(B[i]==0) ans++;
cout<<ans;
}