博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8619 公约公倍
阅读量:6105 次
发布时间:2019-06-21

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

Description

给定六个正整数a,b,c,d,e,f;问你是否存在整数既是a,b,c的最大公约的倍数,同时又是d,e,f的最小公倍数的约数。 

输入格式

输入为多case输入,每个case只有一行,每行六个正整数。当输入6个0时结束。

输出格式

存在输出YES,否则输出:NO

 

输入样例

32 40 16 20 30 240 0 0 0 0 0

 

输出样例

YES 

 

提示

32,40,16的最大公约数是:8;而20,30,24的最小公倍数为120,显然存在整数(如24),既是8的倍数,又是120的约数 

#include
int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int a, b, c, d, e, f, i, j,k, k1, k2; int t=0; while (1) { k1 = k2 = 0; scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f); if (!a&&!b&&!c&&!d&&!e&&!f) break; b=gcd(a,b); k1=gcd(b,c); if(d>=e&&d>=f) k=d; if(e>=d&&e>=f) k=e; else k=f; j=1; while(1) { t=j*k; if(t%d==0&&t%e==0&&t%f==0) break; else j++; } /*此处在求三个数的最小公倍数时,先找到三个数中最大的数k, 随着t=j*k,当t%d==0&&t%e==0&&t%f==0时,t就是满足条件的LCM*/ for (i = k1, j = 1; i <= t / 2; j++, i = j * k1) if (t % i == 0) break; if (i > t / 2) printf("NO\n"); else printf("YES\n"); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/orchidzjl/p/4263423.html

你可能感兴趣的文章
SqlServer2008第一次安装后连接问题
查看>>
cocos2d-x Schedule详解
查看>>
sdut 2163:Identifiers(第二届山东省省赛原题,水题)
查看>>
C++ 容器:顺序性容器、关联式容器和容器适配器
查看>>
mysql 常用语句集
查看>>
Atitit.软件开发提升稳定性总结
查看>>
lftp查看文件时间与登录服务查看文件时间相差8小时
查看>>
[leetcode]Next Permutation @ Python
查看>>
JAVA(2)——JDBC
查看>>
php heredoc 与 nowdoc
查看>>
DBA_Oracle DBA常用表汇总(概念)
查看>>
第30周二
查看>>
Log4cpp介绍及使用
查看>>
数学类杂志SCI2013-2014影响因子
查看>>
实用的树形菜单控件tree
查看>>
最近公共祖先(lca)
查看>>
【WP 8.1开发】文件选取器的使用方法
查看>>
Java实现BASE64编解码
查看>>
【Java】java基本知识
查看>>
之前学习wordpress的几张图片
查看>>