#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论