Witam, ma ktos pomysl na szybsze rozwiazanie tego problemu? (link do rozwiazania przez oi, ale nie rozumiem ich wytlumaczenia).
tresc:
spr:
kod:
#include<bits/stdc++.h>
using namespace std;
int ld(int n){
int s=0;
for(int i=1; i*i<=n; i++){
if(n%i==0){
s++;
if(n/i!=i) s++;
}
}
return s;
}
int main(){
ios::sync_with_stdio(0);
int n,maxi=0,l; cin>>n;
for(int i=1; i<=n; i++){
if(ld(i)>maxi){
maxi=ld(i);
l=i;
}
}
cout<<l;
}
Testy
Zadanie testowane było na zestawie 21 danych testowych.
- ant1.in - n = 1, wynik: 1;
- ant2.in - n = 3, wynik: 2;
- ant3.in - n = 5, wynik: 4;
- ant4.in - n = 100000, wynik: 83160;
- ant5.in - n = 8, wynik: 6;
- ant6.in - n = 5041, wynik: 5040;
- ant7.in - n = 20159, wynik: 15120;
- ant8.in - n = 15120, wynik: 15120;
- ant9.in - n = 75000, wynik: 55440;
- ant10.in - n = 150000, wynik: 110880;
- ant11.in - n = 1000000, wynik: 720720;
- ant12.in - n = 3000, wynik: 2520;
- ant13.in - n = 8000000, wynik: 7207200;
- ant14.in - n = 15000000, wynik: 14414400;
- ant15.in - n = 30000, wynik: 27720;
- ant16.in - n = 60000000, wynik: 43243200;
- ant17.in - n = 110000000, wynik: 73513440;
- ant18.in - n = 354218765, wynik: 294053760;
- ant19.in - n = 600000000, wynik: 551350800;
- ant20.in - n = 1000000000, wynik: 735134400;
- ant21.in - n = 2000000000, wynik: 1396755360.
Dzięki za wszystkie komentarze i odpowiedzi :D