zoukankan      html  css  js  c++  java
  • 快速切题 sgu113 Nearly prime numbers 难度:0

    113. Nearly prime numbers

    time limit per test: 0.25 sec. 
    memory limit per test: 4096 KB

     

    Nearly prime number is an integer positive number for which it is possible to find such primes P1 and P2 that given number is equal to P1*P2. There is given a sequence on N integer positive numbers, you are to write a program that prints “Yes” if given number is nearly prime and “No” otherwise.

     

    Input

    Input file consists of N+1 numbers. First is positive integer N (1£N£10). Next N numbers followed by N. Each number is not greater than 109. All numbers separated by whitespace(s).

     

    Output

    Write a line in output file for each number of given sequence. Write “Yes” in it if given number is nearly prime and “No” in other case.

     

    Sample Input

    1
    6
    

    Sample Output

    Yes

    思路:nearly prime数只能有两个质因数
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    using namespace std;
    int n,num;
    bool nearlyprime(){
        int cnt=0;
        int r=sqrt((double)num);
        if((num&1)==0){
            while((num&1)==0){
                num>>=1;
                cnt++;
                if(cnt>2)return false;
            }
        }
        for(int i=3;i<=r;i+=2){
            if(num%i==0){
                while(num%i==0){
                    num/=i;
                    cnt++;
                    if(cnt>2)return false;
                }
            }
        }
        if(num!=1)cnt++;
        return cnt==2;
    }
    int main(){
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%d",&num);
            if(nearlyprime())puts("Yes");
            else puts("No");
        }
        return 0;
    }
    

      

  • 相关阅读:
    SpringBoot项目设置maven打包时间
    SpringBoot热部署配置
    Git笔记
    SpringBoot LogBack日志配置
    CURL使用教程
    Linux 安装Docker及使用
    转发和重定向的区别
    16周作业
    16
    15周
  • 原文地址:https://www.cnblogs.com/xuesu/p/4003744.html
Copyright © 2011-2022 走看看