Решение задачи Т-простые числа с Codeforces

Без пояснения   Просмотров: 151


Известно, что простыми называются целые положительные числа, у которых ровно два различных положительных делителя. По аналогии назовем целое положительное число t Т-простым, если у t ровно три различных положительных делителя.

Вам дан массив, состоящий из n целых положительных чисел. Для каждого из них определите, является ли оно Т-простым или нет.

Код

#include<bits/stdc++.h>
using namespace std;
long long n,x,t;
bool b[1000001];
int main()
{
	cin>>n;
	b[1]=b[0]=1;
	for(int i=2;i<1000;i++)
	{
		if(!b[i])
			for(int j=i+i;j<1000001;j+=i)
				b[j]=1;
	}
	for(int i=0;i<n;i++)
	{
		cin>>x;
		t=sqrt(x);
		if(t*t==x&&!b[t])
			cout<<"YES"<<endl;
		else
			cout<<"NO"<<endl;
	}
	return 0;
}

         

Администратор Photo Автор: Администратор




Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться