叶博远
(Large)
1
V. 三质数
Problem ID: 1194
Contest ID: 5697
必做题
时间限制:1s 空间:256M
题目描述:
一个数的约数也称为因子,比如1是6的因子,2是6的因子,6是6的因子。
质数只有两个因子,1和它本身
现在定义一种新的质数,三质数,三质数只有三个不同的因子。比如4是三质数,因为它有1,2,4三个因子。比如6不是三质数,因为6有1,2,3,6四个因子。现在有一些数,你需要判断他们是不是三质数。
输入格式:
第一行一个整数T,表示有T组测试数据。
每组测试数据输入一个整数n
输出格式:
对于每组测试数据,判断是否是三质数,如果是输出YES,否则输出NO
样例输入:
3 4 5 6
样例输出:
YES NO NO
约定:
1<=n<=1012,数据组数不超过103
叶博远
(Large)
2
中文:
V. 三质数
Problem ID: 1194
Contest ID: 5697
必做题
时间限制:1s 空间:256M
题目描述:
一个数的约数也称为因子,比如1是6的因子,2是6的因子,6是6的因子。
质数只有两个因子,1和它本身
现在定义一种新的质数,三质数,三质数只有三个不同的因子。比如4是三质数,因为它有1,2,4三个因子。比如6不是三质数,因为6有1,2,3,6四个因子。现在有一些数,你需要判断他们是不是三质数。
输入格式:
第一行一个整数T,表示有T组测试数据。
每组测试数据输入一个整数n
输出格式:
对于每组测试数据,判断是否是三质数,如果是输出YES,否则输出NO
样例输入:
3 4 5 6
样例输出:
YES NO NO
约定:
1<=n<=1012,数据组数不超过103
贾中正
(贾中正)
8
输入一个数n之后接着输入n个数(我们把输入的那个数看做a)因为sqrt不能求到精准值,我们接着这个特性接着求:if(sqrt(a)*sqrt(a)==a)然后输出yes接着continue,否则输出no
1 个赞
袁少
(烈焰·行仓)
18
三质数:质数的平方
判断一个数是否是三质数:
设这个数为x
①判断该数是否是完全平方数,sqrt(x)==int(sqrt(x)),成立为完全平方数,否则不是。
②判断sqrt(x)是否为质数
两条均成立,则这个数是完全平方数
附上代码:
#include <bits/stdc++.h>
using namespace std;
int n,a[1010];
int prime(int n)
{
if(n<2)return false;
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)return false;
return true;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
double x=sqrt(a[i]);
if(x==int(x) && prime(x))cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
6 个赞