1、简单描述
找配对数,输入一个数,数的所有的因子(不包含本身,包括一)的和,即为这个数的配对数。
2、思路
#include<iostream>
using namespace std;
#define N 500001
int p[N];
int main()
{
int n,t,i,j;
for(i=1;i<N;i++)
p[i]=1; //初始化,所有的赋1
for(i=2;i<=N/2;i++) //i表示因子,查找该因子被哪个数包含
{
for(j=2;j*i<N;j++) //j表示倍数
p[j*i]+=i; //该因子的所有倍数都加上该因子
}
while(cin>>n)
{
while(n--)
{
cin>>t;
cout<<p[t]<<endl; //查找上表,输出
}
}
return 0;
}
直接for循环求因子和,超时。换打表输出。