指针原来是套娃的


私信TA

用户名:uq_92467646842

访问量:43652

签 名:

数学改变科学,科学改变世界

等  级
排  名 10
经  验 25211
参赛次数 49
文章发表 128
年  龄 0
在职情况 学生
学  校
专  业 物联网工程

  自我简介:

QQ:2830671713

解题思路:

对于两个数互质的定义是两数的公约数只有1,我们也可以理解为他们的最大公约数是1

一说到最大公约数就不得不提欧几里得法了

欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。

计算公式gcd(a,b) = gcd(b,a mod b)。

它的时间复杂度是logn级别的

参考代码:

#include <stdio.h>
 
int gcd(int a,int b){
 if(a%b == 0)
  return b;
 gcd(b,a%b);
}

int main(){
 int i,n;
 int count = 0;
  
 scanf("%d", &n);
 for(i = 1; i <= n-1; i++){
  if(gcd(i,n) == 1)
   count++;
 }
 printf("%d", count);
  
 return 0;
}


 

0.0分

156 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区