作业帮 > 数学 > 作业

ACM一道题数组范围要求很大,总是超时

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/07/13 14:19:44
ACM一道题数组范围要求很大,总是超时
Time Limit:4000 ms Memory Limit:65536 KB
包子和饺子在上数论课的时候,老师介绍一种有趣的数对,名曰:亲和数对.如果x和q称为亲和数对,则x的真因数之和等于q,且q的真因数之和等于x.(n的真因数是不包含n本身的所有因数).比如(220,284)就是一组亲和数对.因为
220的所有非自身正因子之和为:1
+ 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
284的所有非自身正因子之和为:1 + 2 +
4 + 71 + 142 =
220
包子和饺子觉得亲和数对很有意思,于是他俩想在众多亲和数对中找出一对来当作他们之间的密码,在网上聊天时,当包子说出其中一个亲和数时,饺子就回复另一个相应的亲和数,这样就知道饺子本人了.
但是他俩不知道哪两个数是亲和数对,所以希望知道某个区间中有多少个亲和数对,并且想知道他们分别是多少.
Input
只有两个正整数,A和B,表示包子和饺子希望知道在[A,B]这个区间内的亲和数.(1< = A <
B < = 200000)
Output
第一行是一个整数k,表示[A,B]区间内有k组亲和数对.
接下来有k行,每行包括2个正整数Xi和Qi,(且Xi
< Qi).表示一个亲和数对.(并且要求Xi < Xi+1,即从小到大的顺序输出)
Sample Input
1 2000
Sample Output
2
220 284
1184 1210
#include
#include
#include
using namespace std;
int main()
{
int a,b,sum1=0,sum2=0,k=0,t=0;
int x[100000]={0},y[100000]={0};
int shu[1000],chu[1000];
cin>>a>>b;
for (int i=a;i
ACM一道题数组范围要求很大,总是超时
给个题目网址吧,我试下. 再答: 已经AC了,给个邮箱吧,代码比较长,我发给你。
再问: q464813006
再答: 已发送哈,自己好好看下吧,满意请采纳。