// PATn.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>
#include<cmath>
using namespace std;
double get_value(string &s)
{
if (s.find("/") != string::npos)
{
auto i = s.find("/");
double s_n = stod(s.substr(0, i));
double s_m = stod(s.substr(i + 1, string::npos));
return (s_n / s_m);
}
else
throw("Error");
}
bool check(int a, int b)
{
bool flag = true;
for (int i = 2; i <= a; ++i)
{
if ((a%i) == 0)
{
if ((b%i) == 0)
flag = false;
}
}
return flag;
}
int main()
{
string s1, s2, s3;
cin >> s1 >> s2 >> s3;
double d1 = get_value(s1);
double d2 = get_value(s2);
if (d2 < d1)
{
double tmp = d1;
d1 = d2;
d2 = tmp;
}
double m = stod(s3);
vector<double> n;
double min = floor(d1*m)+1; //d*m,算出来的就是n的范围()!
double max =ceil(d2*m); //double转int,小数部分直接被丢弃!若使用ceil,1.0转换为1.0!
for (double n_tmp = min; n_tmp < max; ++n_tmp)
{
if (check(n_tmp, m) &&(n_tmp/m)!=d1 && (n_tmp/m)!=d2)
n.push_back(n_tmp);
}
for (size_t i = 0; i < n.size(); ++i)
{
cout << n[i] << "/" << m;
if (i != (n.size() - 1))
cout << " ";
}
system("pause");
return 0;
}
1062
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 摘要:runtime、kvo、selectedIndex 在开发公司的一个项目时,遇到一个说正常也正常,说奇葩也奇...
- 尽量不想提到坏处是人之常情,但是让我们换一个角度思考一下。也就是让我们积极地向对方展示坏处。 这样对方就会觉得你是...