
The compiler I use doesn't have type long long,so I couldn't check all of your inputs and inputs to find out my mistake.
Moderator: Board moderators
Code: Select all
1
2
3
4
16
12
24
199238
999321
777234
212121
999999
888888
777777
666666
555555
444444
333333
222222
111111
Code: Select all
Not Exist!
4
9
8
32
18
36
398476
Not Exist!
1554468
272727
1222221
1333332
999999
888888
1666665
666666
777777
444444
333333
Code: Select all
#include <stdio.h>
#include <iostream>
//#include <fstream>
using namespace std;
short int count[1000001];
int primes[1000001][7];
struct node{
int data;
node *next;
};
class list{
public:
list() { start=0; }
void add(int);
node *start;
~list() {
node *cur=start;
while(cur) {
start=start->next;
delete cur;
cur=start;
}
}
};
void list::add(int data) {
node *cur=start,*prv=0;
node *New=new node;
New->data=data;
while(cur&&(cur->data)<data) {
prv=cur;
cur=cur->next;
}
if(cur&&cur->data==data);
else if(prv) {
New->next=cur;
prv->next=New;
}
else {
New->next=start;
start=New;
}
}
void main() {
list *List;
//ofstream cout("out.txt");
int num,i,j,k,max,Max,tp,pos,Count,mult;
count[1]=count[0]=0;
count[2]=0;
for(i=0;i<=1000000;i++)
count[i]=0;
for(i=2;i<=1000000;i++) {
if(!count[i]) {
for(j=i;j<=1000000;j+=i) {
primes[j][count[j]]=i;
count[j]++;
}
}
}
cin>>num;
while(!cin.eof()) {
// for(num=0;num<1000000;num++) {
// cout<<num<<" ";
List=new list;
Max=2000001;
if(num==1) cout<<"Not Exist!"<<endl;
else if(count[num]==1) {
pos=num*primes[num][0];
if(pos>=2000000||pos<=0) cout<<"Not Exist!"<<endl;
else cout<<pos<<endl;
}
else {
mult=1;
for(i=0;i<count[num];i++) mult*=primes[num][i];
List->add(mult);
node *cur=List->start,*tem=0;
Count=0;
max=4*count[num];
for(;max>=Count && cur;cur=List->start) {
for(j=0;j<count[num];j++) {
tp=(cur->data)*primes[num][j];
if(tp>num||tp<=0) {
if(tp<Max) Max=tp;
Count++;
break;
}
else if(tp>=0) List->add(tp);
}
List->start=cur->next;
delete cur;
}
delete List;
if(Max>=2000000 || Max<=0)
cout<<"Not Exist!"<<endl;
else
cout<<Max<<endl;
}
// }
cin>>num;
}
// cout.close();
}
Code: Select all
7500
95000
157636
Code: Select all
7680
97280
315272
Code: Select all
Removed after AC
Code: Select all
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
Code: Select all
160
10201
204
10609
208
315
212
11449
144
11881
220
333
196
12769
228
575
232
351
236
833
150
1331
244
369
248
625
168
16129
256
387
260
17161
198
931
268
225
272
18769
276
19321
280
423
284
1573
162
725
292
189
296
22201
180
22801
304
459
308
775
234
24649
316
477
200
1127
192
26569
328
495
332
27889
252
2197
340
513
344
29929
348
245
242
531
356
32041
240
32761
364
549
368
925
372
2057
376
441
380
36481
216
37249
388
585
224
38809
264
39601