给出2到15个不同的正整数,计算在这些数里面有多少对数满足一个数是另一个数的两倍。比如给出 1 4 3 2 9 7 18 22 答案是3,因为2是1的两倍,4是2的两倍,18是9的两倍。
输入格式:
输入包括多个测试用例。每个测试用例一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束,这个数不属于那2到15个给定的正整数。输入的最后一行仅给出整数-1,这行表示测试用例的输入结束,不用进行处理。
输出格式:
对每个测试用例,输出一行,给出有多少对数满足其中一个数是另一个数的两倍。
输入样例:
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1
输出样例:
3
2
0
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
while(cin>>x&&x != -1)
{
int y;
vector<int>v;
v.push_back(x);
while(cin>>y&&y)
{
v.push_back(y);
}
int ans = 0;
for(auto p:v)
for(auto p1:v)
if(p1 % p == 0 && p1 / p == 2)
ans ++;
cout<<ans<<endl;
}
return 0;
}