230B - T-primes(数学规律+数论+模拟+普及级)

230B - T-primes(源地址自⇔CF230B

Problem

ef879ed6b29316185a33185056bcb241.png

Example

3
4 5 6
YES
NO
NO

d810951436098c07b98481636bf8a426.png

tag:

⇔数学规律、⇔数论、⇔模拟、⇔普及级(*1300)

题意:

给出“T质数”的定义:有且仅有三个因数的数字(包括1和它自己)。

判断给出的数字是否是“T质数”。

思路:

质数 \(k\) 的因数有两个,分别是 \(1\)\(k\) ;那么质数 \(k\) 的平方就有三个因数,分别是 \(1\) , \(k\)\(k^2\) 。所以——“T质数”即为质数的平方数。

那么思路就很清晰了,可以使用埃氏筛打表完成,亦可以直接判断所给的数字是否是质数的平方数。

AC代码:

//A WIDA Project
#include<bits/stdc++.h>
using namespace std;
long long x, y;
bool judge(long long x) {
	if(x == 1) return false;
	for(int i = 2; i * i <= x; i ++) {
		if(x % i == 0) return false;
	}
	return true;
}
int main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int T;
	cin >> T;
	while(T -- > 0) {
		cin >> x;
		y = sqrt(x);
		if(y * y == x && judge(y) == true) cout << "YES" << endl;
		else cout << "NO" << endl;	
	}
	return 0;
}

错误次数:0次,(补题)2次

原因:未特判1。

原因:未开加速,T了。


文 / WIDA
2021.10.26成文
首发于WIDA个人博客,仅供学习讨论


更新日记:
2021.10.27 更正错别字
2021.10.26 成文

posted @ 2021-10-26 17:12  hh2048  阅读(39)  评论(0编辑  收藏  举报