牛数(线筛)
来源:互联网 发布:java微信红包开发demo 编辑:程序博客网 时间:2024/06/05 20:05
Description
我们下面来研究整数性质,我们知道质数只有1和自身两个因子,合数至少有除了1和自身的其他因子,我们也知道“猫老大数”是只能分解成两个质数乘积形式的数,那么能分解成两个合数的数呢?我们称之为“牛数”。下面编程判断整数是否为“牛数”。
Input
第一行为t(1≤t≤100),表示测试数据组数。
接下来t行,每行一个正整数x。
Output
对于每个输入数据x,判断它是否为“牛数”,并输出一行字符串:如果它是“牛数”,输出“cow”,否则输出“no”。
Sample Input
21536
Sample Output
nocow
HINT
60%的数据:1≤x≤109
100%的数据:1≤x≤1012
#include<stdio.h>long long cow,flag;int n,p[100001],cnt,idx;int isprime[1000001];void prime(){ for(int i=2;i<1000000;i++) { if(!isprime[i]) p[cnt++]=i; for(int j=0;j<cnt&&p[j]*i<1000000;j++) { isprime[i*p[j]]=1; if(i%p[j]==0) break; } }} int main(){ scanf("%d",&n); prime(); for(int j=1;j<=n;j++) { flag=0; scanf("%lld",&cow); idx=0; for(int i=0;(long long)p[i]*p[i]<=cow;i++) { while(cow%p[i]==0) { if(idx>=3) break; idx++; cow/=p[i]; } if(idx==3&&cow!=1) { printf("cow\n"); flag=1; break; } if(cow==1&&cow<4) { printf("no\n"); flag=1; break; } } if(flag==0) printf("no\n"); }}
阅读全文
3 0
- 牛数(线筛)
- Armstrong数 (水仙花数)
- 找数(线筛,容斥)
- 判断回文数(对称数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- Catalan数(卡特兰数)
- catalan数(卡特兰数)
- 21位水仙花数(花朵数 )
- Catalan数(卡特兰数)
- 数的拆分(数的划分)
- Catalan数(卡特兰数)
- HDU - 1406 完数(完全数)
- 卡特兰数(Catalan数)
- TCP协议与UDP协议
- Oracle 优化和性能调整
- mac 环境变量笔记
- 小程序微信登录
- nullable、__nullable、_Nullable 究竟有什么区别呢?
- 牛数(线筛)
- JPA学习笔记(13)——JPQL
- cbind()/data.frame()构建数据框字符串chr变因子Factor问题解决
- (15)连接查询概念与左连接语法、练习
- Thinkphp两表连查及字段重复
- linux档案与目录
- Object-C中排序算法
- tf.arg_max和tf.argmax
- js判断值是否为数字