题目大意:
给你一个数,让你判断它是不是素数。
解题思路:
超级大水题,题目简单数据范围也小,随便一个素数筛子就过了,注意下这个题认为 $1$ 和 $2$ 不是素数就行了。
通过代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using namespace std;
const int N = 17000;
bool isprime[N];
int prime[N], nprime; // 下标从 1 开始
void doprime(void)
{
nprime = 0;
memset(isprime, true, sizeof(isprime));
isprime[1] = false;
for (long long i = 2; i < N; ++i)
if (isprime[i])
{
prime[++nprime] = i;
for (long long j = i * i; j < N; j += i)
isprime[j] = false;
}
isprime[2] = false;
}
int main(void)
{
doprime();
int num, i = 0;
while (cin >> num && num > 0 && ++i)
cout << i << ": " << (isprime[num] ? "yes" : "no") << endl;
return 0;
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GuKaifeng's Blog!
评论(延迟加载 / 需要可访问 GitHub Issues)