目录

  • 题目
  • 思路+CODE
    • AC代码1
    • AC代码2
  • ps

题目

Description
给你一个数字,问是否能分解成两个合数的乘积。

Format
Input
第一行为t( 1 ≤ t ≤ 100 1\leq t\leq100 1≤t≤100),表示测试数据组数。 接下来t行,每行一个正整数x。

Output

对于每个输入数据x,如果可以分解成两个合数的乘积就输出"cow",否则输出"no"。

Samples
输入数据 1
2
15
36
输出数据 1
no
cow
提示
15只能分解成35,这两个数字都是质数。但36可以分解成49,4和9都为合数。


思路+CODE

15个测试点TLE1个 (教练太坑了 )
最朴素的算法:因为是求能否分解成两个合数的乘积,其实就是求这个数是否有4个及以上个质因子。所以直接枚举质因子,之后就判断。
CODE

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll yue(ll a){ll sum=0;for(ll i=2;i<=sqrt(a);i++)while(a%i==0)a/=i,sum++;if(a!=1)sum++;return sum;
}
int main() {int n;
ll a;
scanf("%d",&n);
while(n--){scanf("%lld",&a);if(yue(a)>=4)printf("cow\n");else printf("no\n");
}return 0;
}

AC代码1

改了之后懵逼了:lllong long就刑了!
CODE

#include <bits/stdc++.h>
using namespace std;
long long yue(long long a){long long sum=0;for(long long i=2;i<=sqrt(a);i++){while(a%i==0)a/=i,sum++;}if(a!=1)sum++;return sum;
}
int main() {int n;
long long a;
cin>>n;
for(int i=1;i<=n;i++){cin>>a;if(yue(a)>=4)cout<<"cow\n";else cout<<"no\n";
}return 0;
}

AC代码2

感觉上面那个不太行(太lou了),所以写出了个改进版:若在枚举质因子时就判断有没有4个质因子,就可以大大地提高效率。
CODE

#include <bits/stdc++.h>
#define ll long long
using namespace std;
bool yue(ll a){ll sum=0;for(ll i=2;i<=sqrt(a);i++){while(a%i==0)a/=i,sum++;if(sum>=4)return 0;}  if(a!=1)sum++;if(sum>=4)return 0;return 1;
}
int main() {int n;
ll a;
scanf("%d",&n);
while(n--){scanf("%lld",&a);if(yue(a)==0)printf("cow\n");else printf("no\n");
}return 0;
}
//当然,也可以手动把“ll”改为“long long”,也可以再提高效率

ps

有谁知道为神马不用define就可以缩短时间?评论区见!

P00605:数字的分解相关推荐

  1. Unity如何将数字图片分解成数字显示出来——第一篇笔记

    作为一个小萌新,我也终于开始使用CSDN来记录自己的笔记了,废话不多说,进入正题. 我希望的是能够获取图片0~9,并且将其根据数值进行一定顺序的排列,网上看到的设置自定义字体,本人感觉相对来说比较麻烦 ...

  2. java运算符与数字分解,看完对java更加有信心了(主除以和取余的理解)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 运算符: 1.赋值运算符:= 2.算术运算符:+ ,-  ,* (乘), / (除),%(取余),++(自增) ,--(自减) 3.关 ...

  3. 数字2019的分解问题

    把 2019 分解成 3 个各不相同的正整数之和, 并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法? 注意交换3个整数的顺序被视为同一种方法 这道题的主要目的就是对数字的分解,分解出 ...

  4. 从字母数字字符串中提取数字

    http://office.microsoft.com/zh-cn/excel-help/HA001154901.aspx 本文的作者是 Ashish Mathur,是一位 Microsoft MVP ...

  5. 信息学奥赛一本通 1200:分解因数 | OpenJudge 2.2 1751:分解因数

    [题目链接] ybt 1200:分解因数 OpenJudge 2.2 1751:分解因数 [题目考点] 1. 递归 2. 深搜 [解题思路] 解法1:递归 由于要求得到的因数分解序列必须是升序的,那么 ...

  6. 怎么将一个数字高低位互换_多彩数字 多彩童年——东城幼儿园玩具研究教学案例...

    玩具是儿童的天使,孩子在天使的陪伴下,创造性地进行着自己的游戏活动.在幼儿众多的玩具中怎样甄别一款好玩的玩具,挖掘出玩具的最大教育价值,让他们在和玩具的互动中快乐地学习呢?下面,我们来看看老师们是怎样 ...

  7. 2020CCPC绵阳K.Knowledge is Power(互质数分解)+两数互质规律总结

    题目链接:http://codeforces.com/gym/102822/problem/K 题意:将一个数字n分解成多个互质的数相加,求这些互质的数中最大值和最小值之间的差值,要求这个差值最小 两 ...

  8. 10以内的分解与组成怎么教_如何教宝宝熟记10以内分解?

    要先易后难,先从十以内的加减法算起,可以与生活中可以用数量概念表达的物体结合,比如苹果.桔子.荔枝.西红柿.芒果等,这样可以提高孩子的兴趣,也可以让他知道学习数学在生活中的重要作用,运用分解技巧从分解 ...

  9. 负数分解质因数java_Java分解质因数

    题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程 ...

最新文章

  1. springboot集成logback日志 通用logback.xml模板详解
  2. linux FreeImage安装编译
  3. linux iptables:安全应用,防火墙
  4. Java Character 类
  5. python 列表比较不同物质的吸热能力_飘着雪花的冬天
  6. 正则表达式的一些探索(偏JavaScript)
  7. 计算机复试比重低的学校,又有985院校发布调剂信息,这个34所降低复试比重!...
  8. 五、Vue模块化开发学习笔记——JavaScript原始功能、匿名函数的解决方案、使用模块作为出口、CommonJS、ES6 export和import的使用
  9. 快速搭建Python+Selenium+Sublime 自动化测试环境方法
  10. vue、nuxt性能优化
  11. (43)FPGA状态机三段式
  12. 【ES】es 冻结的索引如何查询
  13. 2018年第31周-hive支持的Delete和Update的配置
  14. jar包是什么意思_为什么越来越多的开发者选择使用Spring Boot?
  15. 论文笔记_S2D.73_ICCV2021_单目深度估计的可解释深度网络研究
  16. 设备参数—支持网络外部的通信
  17. spring:注解配置AOP
  18. 图文并茂搭建STM32开发环境
  19. 转 波束成形 Beamforming 简述
  20. 三、静息状态的神经元外膜

热门文章

  1. html 感叹号代码,HTML电子邮件中的感叹号
  2. 基于国家统计局城乡规划数据的地名提取(1)
  3. 联机/中断网络磁盘驱动器对话框
  4. vue 生命周期 这个博客写的很好https://www.cnblogs.com/happ0/p/8075562.html
  5. 实现QQ登陆(QQ互联)
  6. 软件——Jira是什么
  7. 使用NDWI提取水体详细流程
  8. 周鸿袆:从程序员创业谈起
  9. 通达信接口公式怎样进行破解?
  10. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ljw