原题链接:C语言训练-列出最简真分数序列*
#include<stdio.h> static int i,b,yin1,yin2,yin3,yin4,yin5,yin6,yin7,yin8,yin9,me,panduan;//me待求最小因数,yin1,yin2,yin3等是me的因数 int y() { yin3=yin2=yin1=yin4=yin5=yin6=yin7=yin8=yin9=1;//初始化因数 if(i==1) { yin1=1; return 0; } for(b=2; b<me; b++) { if(me%b==0&&yin1!=1&&yin2!=1&&yin3==1) { yin3=b; continue; } if(me%b==0&&yin1!=1&&yin2==1&&yin3==1) { yin2=b; continue; } if(me%b==0&&yin1==1&&yin2==1&&yin3==1) { yin1=b; continue; } if(me%b==0&&yin3!=1&&yin4==1) { yin4=b; continue; } if(me%b==0&&yin4!=1&&yin5==1) { yin5=b; continue; } if(me%b==0&&yin5!=1&&yin6==1) { yin6=b; continue; } if(me%b==0&&yin6!=1&&yin7==1) { yin7=b; continue; } if(me%b==0&&yin7!=1&&yin8==1) { yin8=b; continue; } if(me%b==0&&yin8!=1&&yin9==1) { yin9=b; continue; } } } int main(void) { printf("请输入一个整数,求以它为分母的最简分数:"); scanf("%d",&me);//输入待求因数 y(); printf("以%d为分母的最简分数有:",me);//提示 for(i=1; i<me; i++) { panduan=1; if(i%yin1==0) { panduan=0; } if(i%yin2==0&&yin2!=1) { panduan=0; } if(i%yin3==0&&yin3!=1) { panduan=0; } if(i%yin4==0&&yin4!=1) { panduan=0; } if(i%yin5==0&&yin5!=1) {//如果缓冲数i除以me任意一个非1的因数的余数存在则panduan为假 panduan=0; } if(i%yin6==0&&yin6!=1) { panduan=0; } if(i%yin7==0&&yin7!=1) { panduan=0; } if(i%yin8==0&&yin8!=1) { panduan=0; } if(i%yin9==0&&yin9!=1) { panduan=0; } if(panduan==1||yin1==1) { printf("%d/%d,",i,me);//判断为真时候输出 } } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复