当前位置:   article > 正文

C语言之最简真分数递增序列_c语言最简真分数递增序列

c语言最简真分数递增序列

题目描述

统计分母在区间[a,b]的最简真分数共有多少个?并求这些最简真分数升序序列中的第k项。

所谓最简真分数是指:分子小于分母,且分子分母无公因数的分数。

输入要求

输入正整数a,b,k。

输出要求

输出分2行:第1行是最简真分数的个数;第2行是递增序列中第k项的分数形式。

输入样例

10 99 1000

输出样例

n=2976
The 1000 Item=27/80

提示

分数项不超过3000个

代码实现

  1. #include<stdio.h>
  2. struct test
  3. {
  4. int fenmu;
  5. int fenzi;
  6. };
  7. int main()
  8. {
  9. test p[3000];
  10. test h;
  11. int a,b,k=0,n=0;
  12. int i,j;
  13. int t,u;
  14. scanf("%d%d",&a,&b); scanf("%d",&k);
  15. for(j=a;j<=b;j++)
  16. for(i=1;i<=j-1;i++)
  17. {
  18. for(t=0,u=2;u<=i;u++)
  19. if(j%u==0&&i%u==0)
  20. {
  21. t=1;break;
  22. }
  23. if(t==0){n++;p[n].fenzi=i;p[n].fenmu=j;}
  24. }
  25. for(i=1;i<=n-1;i++)
  26. for(j=1;j<=n-i;j++)
  27. if((p[j].fenzi*p[j+1].fenmu)>(p[j+1].fenzi*p[j].fenmu))
  28. {
  29. h=p[j];p[j]=p[j+1];p[j+1]=h;
  30. }
  31. printf("n=%d\nThe %d Item=%d/%d\n",n,k,p[k].fenzi,p[k].fenmu);
  32. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/524582
推荐阅读
相关标签
  

闽ICP备14008679号