为什么C语言编译失败?
查看原帖
为什么C语言编译失败?
1252898
ShadowBlood楼主2024/3/12 09:44
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>//用bool类型

bool num[100000005] = { 1, 1 };//0素数
int num0[5761460] = { 0 };//存素数

int read()
{
	int num = 0;
	char ch = getchar();

	while (ch < 48 || 57 < ch)//找首位
	{
		ch = getchar();
	}

	while (48 <= ch && ch <= 57)//数值
	{
		num = num * 10 + ch - 48;
		ch = getchar();
	}

	return num;
}

void write(int num)
{
	if (num > 9)
	{
		write(num / 10);
	}
	putchar(num % 10 + 48);
}

int main()
{
	int n = read(), q = read();//快读 - 范围、询问次数

	int tmp = sqrt(n), sit = 0;
	for (int i = 2; i <= tmp; i++)//埃氏筛
	{
		if (!num[i])//找素数
		{
			long long int j = i * i;
			for (; j <= n; j += i)//筛合数
			{
				if (!num[j])
				{
					num[j] = 1;
				}
			}
		}
	}

	for (int i = 2; i <= n; i++)//放素数
	{
		if (!num[i])
		{
			num0[++sit] = i;
		}
	}

	for (int i = 1; i <= q; i++)//查询 - 输出
	{
		write(num0[read()]);
		putchar(10);
	}

	return 0;
}
2024/3/12 09:44
加载中...