问下输入格式不是要求数字之间有空行吗,为啥测试数据没有
查看原帖
问下输入格式不是要求数字之间有空行吗,为啥测试数据没有
1562829
KBMaxwell楼主2025/1/23 16:47
#include <stdio.h>
#include <stdbool.h>
int main()
{
	int l;
	scanf("%d", &l);
	if(l<2)
	{
		printf("0");
		return 0;
	}
	bool arr[100000] = {false};
	int prime[100000];
	int h=0, i, j, n=0;
	for(i=2;i<=l;i++)
	{
		if(!arr[i])
			prime[n++] = i;
		for(j=0;j<n&&prime[j]<=l/i;j++)
		{
			arr[i*prime[j]] = true;
			if(i%prime[j]==0)
				break;
		}
	}
	j=0;
	for(i=2;i<l;i++)
	{
		if(!arr[i])
		{
			if(h+i>l)
			{
				printf("%d", j);
				break;
			}
			printf("%d\n", i);
			h+=i;
			j++;
		}
		if(i==l-1)
			printf("%d", j);
	}
	return 0;
}

2025/1/23 16:47
加载中...