题目:

按递增顺序依次列出所有分母为40,分子小于40的最简分数。

输出示例:1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21/40,23/40,27/40,29/40,31/40,33/40,37/40,39/40,

解题思路:

最简分数即分子不能再与40约分,即两个数没有公因子。

1、可以先求出40的所有公因子;

2、再用分子对所有公因子求余;

3、若出现余数为0的情况,说明该分子可以约分,计算下一个;

4、否则输出该最简分数。


参考代码:

#include<stdio.h>

int main(void){
	int array[10]={0};
	int i,j=0,num=0,mark;
	
	for(i=2;i<40;i++){                    //求出40的所有因子(不包括1和40) 
		if(40%i==0){
			array[j] = i;
			j++;
			num++;
		}
	} 
	
	for(i=1;i<40;i++){
		mark = 1;
		for(j=0;j<num;j++){            //从1开始对40的所有因子求余 
			if(i%array[j]==0){
				mark = 0; 
			}
		}
		
		if(mark==1)                    //若求余全不为0,则该数字不可与40约分,输出即可 
		printf("%d/40,",i);
	}
	
	return 0;
}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

江雪沉月 2年前 回复TA
j和num的值是一样的,没必要多设置一个