C++ 最简真分数(九度OJ 1465)

来源:互联网 发布:java生成log日志文件 编辑:程序博客网 时间:2024/04/30 20:19

题目描述:

给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。

输入:

输入有多组,每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。
当n=0时,程序结束,不需要处理这组数据。

输出:

每行输出最简真分数组合的个数。

样例输入:
73 5 7 9 11 13 153 2 4 50
样例输出:
17 2
源代码:
#include <iostream>using namespace std;void fun(int a[],int n){    int i,j,k;    int num,flag;    num=0;    for(i=0;i<n;i++)        for(j=0;j<n;j++)            if(a[i]/a[j]==0)            {                flag=0;                for((k=(a[i]>a[j])?a[i]:a[j]);k>1;k--)                {                    if(a[i]%k==0 && a[j]%k==0)                    {                        flag++;                        break;                    }                }                if(flag==0)                    num++;            }    cout<<num<<endl;}int main(){    int i,n;    int a[600];    while(cin>>n && n!=0)    {        for(i=0;i<n;i++)        {            cin>>a[i];        }        fun(a,n);    }    return 0;}


程序截图:

PS:此程序耗时>1000ms



1 0
原创粉丝点击