今天遇到一道奇怪的程序题,和平常的不同。同样都是互质,但是一般的题目都是判断两个数字是否互质,但这道题则是给定一个数字n,要求输出所有小于等于n的与n互质的数,题目已经在下面给出:

质数与互质概念不是同一个,质数指的是一个数仅有1和它自己本身可以被整除;而互质则指的是两个数只有1是共同的因数,有些人可能会将两者混为一谈。本篇文章是以互质为主题,接下来以互质作为主要内容,不过不得不说,这两者的核心都是一样的,采取欧几里得算法(又叫辗转相除法),通常用gcd表示,欧几里得算法应用范围非常广泛,在今后的blog中我会专门写一篇文章来讲欧几里得算法。

言归正传,这道题有多行测试数据,因此我们可以用while语句作为循环,考虑到会超时,于是我打算用自定义函数:

被除数a和除数b相除取余数c,将余数c给除数b,除数b给被除数a,以此往复,直到直到b为0,作为结束的标志。

本题考察的是自定义函数,其中欧几里得算法非常重要。

以下是完整代码:

 #include <stdio.h>
int Gcd(int m,int n)
{
int o;
while(n>)
{
o=m%n;
m=n;
n=o;
}
return m;
}
int main()
{
int a,i,b,s;
while(scanf("%d",&a)!=EOF)
{
if(a==)
{
printf("1\n");
}
else{
s=;
for(i=;i<a;i++)
{
b=Gcd(i,a);
if(b==)
{
s++;
}
}
printf("%d\n",s);
}
}
return ;
}

最新文章

  1. Bzoj2683 简单题 [CDQ分治]
  2. ASP.NET中进行消息处理(MSMQ) 二(转)
  3. Luci中cbi控件类型总结
  4. TCP的3次握手和4次挥手
  5. Javascript中函数的四种调用方式
  6. share干什么的
  7. rabbitMQ 笔记
  8. (经典)tcp粘包分析
  9. 使用OpenXml实现生成数据字典文档(beta)
  10. Objective-C中math.h数学计算公式介绍
  11. 解决,Incorrect table definition; there can be only one auto column and it must be defined as a key
  12. 万马齐喑究可哀-中文编程的又一波&quot;讨论&quot;
  13. 怎么让html中 还是显示&lt;button&gt; 而不进行编译
  14. shell练习题4
  15. HTTP协议快速入门指南
  16. 【转】c# [Serializable]的作用
  17. [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)
  18. Centos安装FTP服务器和配置
  19. 福大软工1816 - 第八次作业(课堂实战)- 项目UML设计
  20. python---django中权限框架设计

热门文章

  1. Java零基础手把手系列:HashMap排序方法一网打尽
  2. powershell(一)
  3. Spring Boot Actuator 整合 Prometheus
  4. 第3章(2) Linux下C编程风格
  5. Oracle基于布尔的盲注总结
  6. linux-pclint代码检测
  7. SpringCloud之RefreshScope 源码解读
  8. Rsync服务常见问题
  9. 我遇到的一些Git问题汇编
  10. 封装自己通用的 增删改查的方法 By EF