Submission #41056710


Source Code Expand

#include<bits/stdc++.h>
#define int long long
#define N 1000005
using namespace std;
int p[N],cnt,num[N],s[N],L[N],R[N],ans,tot[N];
bool is[N];
signed main(){
	memset(is,1,sizeof is);
	is[1]=0; 
	int n;
	cin>>n;
	for(int i=2;i*i<=n;++i){
		s[i]=s[i-1]+is[i];
		if(is[i]){
			tot[i]=num[i]=1;
			L[i]=R[i]=i;
			p[++cnt]=i;
		}
		for(int j=1;j<=cnt&&i*i*p[j]*p[j]<=n;++j){
			is[i*p[j]]=0;
			tot[i*p[j]]=tot[i]+1;
			if(i%p[j]){
				num[i*p[j]]=num[i]+1;
				L[i*p[j]]=p[j];
				R[i*p[j]]=R[i];
			}else{
				num[i*p[j]]=num[i];
				L[i*p[j]]=L[i];
				R[i*p[j]]=R[i];
				break;
			}
		}
	}
	for(int i=sqrt(n);i>=10;--i){
		if(num[i]!=2||tot[i]!=2){
			continue;
		}
		int k=n/(i*i);
		if(k<=L[i]){
			continue;
		}
		if(R[i]-L[i]<=1){
			continue;
		}
		ans+=s[min(k,R[i]-1)]-s[L[i]];
	}
	cout<<ans;
}

Submission Info

Submission Time
Task D - AABCC
User lzyqwq
Language C++ (GCC 9.2.1)
Score 400
Code Size 850 Byte
Status AC
Exec Time 67 ms
Memory 44144 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 17
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 8 ms 4504 KiB
sample_02.txt AC 64 ms 44144 KiB
test_01.txt AC 4 ms 4428 KiB
test_02.txt AC 3 ms 4584 KiB
test_03.txt AC 6 ms 5732 KiB
test_04.txt AC 67 ms 44076 KiB
test_05.txt AC 62 ms 44120 KiB
test_06.txt AC 13 ms 9140 KiB
test_07.txt AC 55 ms 36664 KiB
test_08.txt AC 3 ms 4944 KiB
test_09.txt AC 66 ms 43460 KiB
test_10.txt AC 54 ms 39160 KiB
test_11.txt AC 21 ms 10240 KiB
test_12.txt AC 31 ms 25056 KiB
test_13.txt AC 26 ms 21704 KiB
test_14.txt AC 40 ms 29556 KiB
test_15.txt AC 50 ms 36912 KiB