P1865Help
查看原帖
P1865Help
338370
Merron楼主2020/8/29 16:27

为什么0分?

#include <bits/stdc++.h>
using namespace std ;

int n ;
int m ;

const int MAXSIZE = 1e6 ;

int Prime[1000000] ;
int Is[1000000] ;

void Get()
{
	int cnt = 0 ;
	memset(Is, true, sizeof(Is)) ;
	Is[0] = Is[1] = 0 ;
	for (int i = 2 ;i <= m ;i ++)
	{
		if (Is[i] == 1)
		{
			cnt ++ ;
			Prime[cnt] = i ;
		}
		for (int j = 1 ;j <= cnt && i * Prime[j] <= m ;j ++)
		{
			Is[i * Prime[j]] = 0 ;
			if (i % Prime[j] == 0)
			{
				break ;
			}
		}
	}
}

int main()
{
	cin >> n >> m ;
	Get() ;
	for (int i = 1 ;i <= n ;i ++)
	{
		int a, b ;
		cin >> a >> b ;
		if (max(a, b) > m || min(a, b) < 1)
		{
			cout << "Crossing the line" << endl ;
			continue ;
		}
		int ans = 0 ;
		for (int j = min(a, b) ;j <= max(a, b) ;j ++)
		{
			if (Is[j] == 1)
			{
				ans ++ ;
			}
		}
		cout << ans << endl ;
	}
	return 0 ;
}
2020/8/29 16:27
加载中...