zoukankan      html  css  js  c++  java
  • 洛谷-牛数-野题

    题目描述 Description

    我们下面来研究整数性质,我们知道质数只有 1和自身两个因子,合数至少
    有除了 1和自身的其他因子,我们也知道“猫老大数”是只能分解成两个质数乘
    积形式的数,那么能分解成两个合数的数呢?我们称之为“牛数”。下面编程判
    断整数是否为“牛数”。

    输入输出格式 Input/output

    输入格式:
    第一行为 t(1<=t<=100),表示测试数据组数。
    接下来 t行,每行一个正整数x(1<=x<=10^9)
    输出格式:
    对于每个输入数据 x,判断它是否为“牛数”,并输出一行字符串:如果它
    是“牛数”,输出“cow”,否则输出“no”。
    输入输出样例 Sample input/output
    样例测试点#1
    输入样例:
    2
    15
    36
    输出样例:
    no
    cow
    思路:先把这个数分解为两个因数,传入判断质数函数判断即可,注意:要两个因数都为合数且这个数每次都不能被大于3的数整除
    代码如下:
     1 #include <stdio.h>
     2 #include <math.h>
     3 int prime(int k); 
     4 int main()
     5 {
     6     int n,cow,i,flag,j;
     7     //freopen("cow.in","r",stdin);
     8     //freopen("cow.out","w",stdout);
     9     scanf("%d",&n);
    10     for(j=0;j<n;j++)
    11     {
    12         flag=0;
    13         scanf("%d",&cow);
    14         for(i=4;i<=(sqrt(cow));i++) 
    15         {
    16             if(cow%i==0&&prime(i)==0&&prime(cow/i)==0)//如果是,输出yes 
    17             {
    18                 printf("cow
    ");
    19                 flag=1;
    20                 break;    
    21             }            
    22         }                    
    23         if(flag==0) printf("no
    ");//不是牛数,输出no 
    24     }
    25     return 0;
    26 }
    27 int prime(int x) //是合数返回0,不是返回1    
    28 {    
    29     int i,l;        
    30     l=sqrt(x);
    31     for(i=2;i<=l;i++)    
    32         if(x%i==0) return 0;                
    33              return 1;    
    34 }     
  • 相关阅读:
    flock对文件锁定读写操作的问题 简单
    hdu 2899 Strange Fuction(二分)
    hdu 2199 Can you solve this equation? (二分)
    poj 3080 Blue Jeans (KMP)
    poj 2823 Sliding Window (单调队列)
    poj 2001 Shortest Prefixes (trie)
    poj 2503 Babelfish (trie)
    poj 1936 All in All
    hdu 3507 Print Article (DP, Monotone Queue)
    fzu 1894 志愿者选拔 (单调队列)
  • 原文地址:https://www.cnblogs.com/geek-007/p/4648922.html
Copyright © 2011-2022 走看看