zoukankan      html  css  js  c++  java
  • Sicily T-primes

    Description
    We know that prime numbers are positive integers that have exactly two distinct positive divisors. 

    Similarly, we'll call a positive integer t Т-prime, if t has exactly three distinct positive divisors。

    You are given an array of n positive integers. For each of them determine whether it is Т-prime or not.

    Input
    The first line contains a single positive integer, n (1?≤?n?≤?10000),showing how many numbers are in the array. 

    The next line contains n space-separated integers xi (1?≤?xi?≤?10^12).

    Output
    Print one line: The number of T-primes number

    Sample Input
     Copy sample input to clipboard
    3
    4 5 6
    Sample Output
    1
    Hint
    Please use long long instead of int for any Xi.

    The given test has three numbers. 

    The first number 4 has exactly three divisors — 1, 2 and 4. 

    The second number 5 has two divisors (1 and 5), 

    The third number 6 has four divisors (1, 2, 3, 6),

    hence the answer for them is 1 (only the number 4 is T-primes number).

    思路:题就是判断一个数是否仅含有3个因子,其实也就是除了1和它自身外,还存在另一个因子。如果找到这个另外的因子就输出yes,否则为no。数据范围1e15,不小了 ,

    一个数n是T素数,一定是1,n,sqrt(n),且sqrt(n)为素数

    也就是如果一个数是素数的平方,那么这个数有且仅有三个因子。

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int n,i,j;
    	long long a,b;
    	cin>>n;
    	for(i=1;i<=n;i++)
    	{
    		cin>>a;
    		b = sqrt(a);
    		for(j=2; j*j <= b; j++) {	
    			if(b%j == 0){ 
    				break;  //判断根号后的a即b是不是素数
    			}
    		}
    		if(j*j > b && b*b == a && a>1){
    			cout<<"YES"<<endl;
    		}
    		else{
    			cout<<"NO"<<endl;
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    CF1359D Yet Another Yet Another Task
    【数据结构】fhq_treap
    AtCoder Beginner Contest 182 题解
    UVA11992 Fast Matrix Operations
    双指针例题
    python使用国内镜像库
    APP元素定位工具之——Weditor
    安卓ADB的常见命令的使用
    函数进阶之迭代器,递归
    函数基础之对象,嵌套,名称空间和作用域
  • 原文地址:https://www.cnblogs.com/clb123/p/10391598.html
Copyright © 2011-2022 走看看