题目描述
按递增顺序依次列出所有分母为40,分子小于40的最简分数a40,满足 gcd(a,40)==1。
输出
分数之间用逗号分开(含最末逗号)
样例输出
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是否构成真分数。
代码一
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a=40;
for(int i=1;i<40;i++)
{
int flag=1;
for(int j=2;j<=i;j++)
{
if(i%j==0)
{
if(a%j==0)
{
flag=0;
break;
}
}
}
if(flag==1||i==1)
cout<<i<<"/"<<a<<",";
}
return 0;
}
代码二
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a=40;
for(int i=1; i<40; i++)
{
int flag=1;
for(int j=2; j<=ceil(sqrt(i)); j++)
{
if(i%j==0||a%i==0)
{
if(a%j==0||a%(i/j)==0||a%i==0)
{
flag=0;
break;
}
}
}
if(flag)
cout<<i<<"/"<<a<<",";
}
return 0;
}