博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCF NOI1040 除法游戏
阅读量:6848 次
发布时间:2019-06-26

本文共 878 字,大约阅读时间需要 2 分钟。

问题链接


时间限制: 1000 ms  空间限制: 262144 KB

题目描述 

  小A和小B是一对好朋友,他们的爱好是研究数字。学过除法之后,他们就发明了一个新游戏:两人各说一个数字分别为a和b,如果a能包含b的所有质数因子,那么A就获胜。但是当数字太大的时候,两个朋友的脑算速度就有点跟不上了。

  现在,请你写个程序,来判断胜负吧:输入两个正整数,表示a和b(2≤a, b≤10 18)。如果a包含了b的所有质数因子,则输出“Yes”,否则输出“No”(输出时没有引号)。

输入

  输入两个正整数a和b,中间用一个空格隔开。

输出

 
如果a包含了b的所有质数因子,则输出“Yes”,否则输出“No”(输出时没有引号)。

样例输入

输入1:

120 75
输入2:
7 8
样例输出

输出1:

Yes
输出2:
No

数据范围限制

  2≤a, b≤10 18

提示

 


问题分析

  这个问题的关键是因子。

  两个数的最大公约数里包含了所有的共有的因子。

  知道最大公约数后,进一步对b进行计算就知道了。

程序说明

  (略)

要点详解

  • 最大公约数是数论中重要的概念,通常用欧几里德算法实现
  • 通常需要根据数值范围选用合适的类型。


参考链接:(略)。

100分通过的程序:

#include 
// 最大公约数long long gcd(long long m, long long n){ return (n == 0) ? m : gcd(n, m % n);}int main(void){ long long a, b, c; scanf("%lld%lld", &a, &b); c = gcd(a, b); b = b / c; if(c % b == 0) printf("Yes\n"); else printf("No\n"); return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563848.html

你可能感兴趣的文章
三种方法实现选项卡效果
查看>>
API网关(API Gateway)
查看>>
Zookeeper集群搭建和简单使用
查看>>
IntelliJ IDEA快捷键
查看>>
JEESNS使用Maven打包介绍
查看>>
微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
查看>>
Xmanager 连接 AIX 系统
查看>>
Centos下PCIe Bus Error: severity=Corrected解决方法
查看>>
java的锁机制
查看>>
如何避免项目管理黑洞-为什么要使用redmine
查看>>
[]+与[]表达式
查看>>
.Net平台下ActiveMQ入门实例
查看>>
C#语言获取控制面板“程序和功能”列表
查看>>
外网语音通信准备资料
查看>>
写字机器人开发之:python opencv linux下合作操作摄像头
查看>>
四大名著终于过了一遍
查看>>
if-else选择结构
查看>>
快速体验一把 12306 图片验证码 识别
查看>>
一 网络概述 每天记录一点点
查看>>
oracle 阻塞会话的查看与解除
查看>>