map[n]会大于18000,不可以map[map[n]]
by WhiteSunFlower @ 2020-01-31 10:09:02
n也会大于18000
by WhiteSunFlower @ 2020-01-31 10:17:34
-----华丽的分界线-----
如果输入18000那么输出=18416 17296
所以,该题的数组应开到18417以上
包括所有循环也要开到18417以上
把这几个数字改一下就好了
```cpp
#include <iostream>
using namespace std;
int n,map[18420];
void ys_work(){
for(int w=1;w<=18420;++w){
for(int y=w;w*y<=18420;++y){
map[w*y]+=w+y;
}
map[w]-=w;
}
map[1]=0;
}
int main(){
ys_work();
cin>>n;
while(1){
if(map[n]<=18420)
if(map[map[n]]==n&&map[n]!=n){
cout<<n<<" "<<map[n];
break;
}
++n;
}
return 0;
}
```
by WhiteSunFlower @ 2020-01-31 10:22:31