若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1644: Semi-Prime

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,109

题目描述

Prime Number Definition
An integer greater than one is called a prime number if its only positive divisors (factors) are one and itself. For instance, 2, 11, 67, 89 are prime numbers but 8, 20, 27 are not.

Semi-Prime Number Definition
An integer greater than one is called a semi-prime number if it can be decompounded to TWO prime numbers. For example, 6 is a semi-prime number but 12 is not.

Your task is just to determinate whether a given number is a semi-prime number.

输入

There are several test cases in the input. Each case contains a single integer N (2 <= N <= 1,000,000)

输出

One line with a single integer for each case. If the number is a semi-prime number, then output "Yes", otherwise "No".

样例输入

3
4
6
12

样例输出

No
Yes
Yes
No

参考代码

#include<stdio.h>
#include<math.h>
int main() 
{
    int prime(int);
    int n;
    while(scanf("%d",&n)!=EOF) 
    {
        int i,t=sqrt(n),k=0,a;
        if(prime(n))  
           printf("Non"); 
  else  
  {  
   for(i=2;i<=t;i++)   
    if(n%i==0)    
    {    
     k++;    
     a=i;    
    }   
    if(k>1)
     printf("Non");   
    else
     if(prime(a) && prime(n/a))
      printf("Yesn");
     else
      printf("Non");
  }
 }
 return 0;
}
int prime(int n)
{
 int i,t;
 t=sqrt(n);
 for(i=2;i<=t;i++)
  if(n%i==0)
   break;
  if(i>t)
   return 1;
  return 0;
}

解析

暂无

hustoj

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Dreams孤独患者 Skip 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist