J:寻找配对数

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

在给定的n个互不相等的正整数中,寻找可以形成a*b=c的等式(a,b,c互不相等)的数目。比如在12,32,6,1,2,8,4中,只有2*4=8, 2*6=12, 4*8=32三对。

注意:给出的正整数互不相同。正整数的最大值为2^32-1,正整数的最大个数为1000.

输入
第一行输入总共的正整数数目n(n<=1000)
接下来的一行输入n个正整数,正整数之间用一个空格隔开。
输出
输出其中满足a*b=c等式的数目。
样例输入
7
8 6 3 4 10 5 2
样例输出
3
 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,count=0;
 6     long long a[1001];
 7     cin >> n;
 8     for (int i=0;i<n;++i)
 9     {
10         cin >> a[i];
11     }
12     for (int i=0;i<n;++i)
13     {
14         for (int j=i+1;j<n;++j)
15         {
16             for (int m =j+1; m < n; ++m)
17             {
18                 if (a[i] * a[j] == a[m]||a[i]*a[m]==a[j]||a[m]*a[j]==a[i])
19                 {
20                     count++;
21                 }
22             }
23         }
24     }
25     cout << count;
26     return 0;
27 }
 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,k,x,j;
 6     int a[100000];
 7     k = 0;
 8     cin >> n;
 9     for(int i = 0; i < n; i++)
10         cin >> a[i];
11     for(int i = 0; i < n; i++)
12     {
13         for(int b = i + 1; b < n; b++)
14         {
15             j = a[i] * a[b];
16             for(int l = 0; l < n; l++)
17             {
18                 if(j == a[l] && j != a[i] && j != a[b])
19                 {
20                     k++;
21                 }
22             }
23         }
24     }
25     cout << k << endl;
26     return 0;
27 }

 

posted @ 2020-12-05 15:57  丁帅帅dss  阅读(604)  评论(0)    收藏  举报