【问题描述】

如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。例如,4/3,5/2,1/8,7/1都是既约分数。

请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)?

答案:

2481215

分析:

开始想怎么去表示分子分母,后来想了一会儿,没必要表示出来,反正都是1–2020的数,直接判断就行了,将第一个数定位分母,第二个数定为分子,看是否二者互质(就是最大公约数为1),我们可以建立一个求最大公约数的方法,调用可以,也可以不调用直接使用也可,(第二种方法要快很多)
测试代码1:调用的方法

#include<iostream>
using namespace std;
int main()
{int count = 0;int gcd(int num1, int  num2);for (int i = 1; i <= 2020; i++) {for (int j = 1; j <= 2020; j++){int max=gcd(i, j);if (max == 1) { count++; }}}cout<< count << endl;return 0;}
//使用的是辗转相除法
int gcd(int num1, int  num2){int max = 1;       //记录最大公约数 int c= num1> num2 ? num2 : num1;      //c等于两数中小的数 for (int i = 1; i <= c; i++){if (num1 % i == 0 && num2 % i == 0){if (i > max)max = i;}}return max;
}

测试代码2:不调用,直接在主函数使用

#include <stdio.h>
#include <stdlib.h>
int main()
{int n, m;  int temi, temj;int sum = 0;  //既约分数总数for (int i = 1; i <= 2020; i++)  //分母{for (int j = 1; j <= 2020; j++)  //分子{temi = i;  //暂存分子分母temj = j;if (temi < temj) {n = temi;temi = temj;temj = n;}while (temi % temj != 0)  //被除数在%左边,余数的在%右边{//使用的是辗转相除法m = temi % temj;temi = temj;temj = m;}if (temj == 1) {  //temj=1说明分子分母二者最大的公约数是1sum++; }}}//输出总数printf("%d", sum);return 0;
}

运行结果:

十一届蓝桥杯省赛C语言B组——B: 既约分数相关推荐

  1. 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数

    2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...

  2. 2020十一届蓝桥杯国赛二等奖Java B组

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 参考博客https://blo ...

  3. 2015年第七届蓝桥杯省赛C语言B组

    2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...

  4. 2012年第三届蓝桥杯省赛C语言B组

    2012年第三届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题 题目:微生物增殖 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次( ...

  5. 第九届蓝桥杯 省赛 C语言A组

    第一次参加这种比赛,心里有点小忐忑,虽然已是大三狗,但是还是啥都不会.算是一次锻炼吧.. 下面答案都是自己做的,有什么不对的地方还恳请指出.                               ...

  6. 17年第八届蓝桥杯省赛(C语言B组) 题解

    最近 又从新做了一遍,主要是用代码实现.跑出答案... 1: 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. ...

  7. 第九届蓝桥杯省赛JAVA语言 C组题解_题7 缩位求和

    JAVA语言 C组题解_题7 缩位求和 题目 解题思路 题目 标题:缩位求和 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确. 比如:248 * 15 = 3720 把乘数和被乘 ...

  8. 蓝桥杯抽卡游戏c语言,取球游戏——第三届蓝桥杯省赛C语言A组第10题

    今盒子里有n个小球,A.B两人轮流从盒中取球,每一个人均可以看到另外一我的取了多少个,也能够看到盒中还剩下多少个,而且两人都很聪明,不会作出错误的判断.编程 每一个人从盒子中取出的球的数目必须是:1, ...

  9. 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - F.成绩分析

    Ideas 这道题目其实主要就是数据处理,可以先把所有的成绩都存到一个数组里,最后统一处理.(Python代码) 当让也有更高级的处理,我们可以在读入数据的过程中就分别维护三个变量:最大值.最小值.所 ...

最新文章

  1. pip安装库速度较慢--常用的几个国内镜像
  2. 软件工程--软件设计
  3. FusionInsight LibrA V100R002C80SPC300安装指南
  4. python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
  5. P2831 [NOIP2016 提高组] 愤怒的小鸟 状压dp
  6. 任务调度之Timer、TimerTask
  7. 函数专题:sum、row_number、count、rank\dense_rank over
  8. 14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格
  9. and design pro实现打印电子面单(菜鸟物流-可批量打印)
  10. 计算机大赛获奖团队采访,坚持勤奋铸就无悔青春——全国大学生数学建模大赛一等奖获奖者专访...
  11. 90KB的3D游戏(像CS一样)[汇编界又一奇迹]绝对震撼,操作和CS一样!
  12. word如何删除页脚页眉?
  13. 浏览器主页被劫持篡改了怎么办
  14. Google 开源项目风格指南--C++ 风格指南
  15. 用photoshop制作证件照片
  16. Windows安装本地组策略编辑器【gpedit.msc】
  17. Android拖动实现(一个流畅的拖动排序DragSortGridView,自动滚屏)
  18. 背景色设置透明,兼容ie浏览器设置
  19. 攻略-联想 Yoga 900 安装 Arch Linux 系统
  20. 电影投资普通小白参与能获得多少分红?分红有规则吗?

热门文章

  1. gnuplot绘制xxx.plt文件生成图形
  2. 排污单位生产设施及污染治理设施用电(能)监控系统原理、作用、组成及功能
  3. 神兽大厅源码搭建SLB最佳实践
  4. 有没有可以测试手速的软件,我的第一个Mac小程序 — 手速测试器
  5. python目前版本强势英雄_王者荣耀:分析S10星耀局以上一些强势英雄及版本目前排位的形势...
  6. FATFS文件系统复制文件
  7. 分子动力学软件-VMD(win版)
  8. 悠漓带你玩转C语言(数组)
  9. 蜗店SaaS系统功能介绍
  10. SATA、AHCI、ATA等相关知识概述