Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <map>
- #include <cmath>
- using namespace std;
- const long long N =1417;
- int esPrimo[N];
- void criba(long long n){
- for (long long i=0;i<=n;i++) esPrimo[i]=1;
- esPrimo[0]=esPrimo[1]=0;
- for (long long p=2;p<=n;p++){
- if (esPrimo[p])
- for(long long mul=p*p;mul<N;mul+=p) esPrimo[mul]=0;
- }
- }
- multimap<int,int>m;
- int main(){
- criba(1416);
- int num;
- //Ordenar
- m.insert (pair<char,int>(1,1));
- for (int i=2;i<=2000000;i++){
- int n=i,cant=0,cont=2,aux;
- while(n!=1){
- while((cont<=1415) && !(esPrimo[cont]&&((n % cont)==0))) cont++;
- if ((cont==1416)&& (n!=1)){cant++;break;}
- //cout<<"cont: "<<cont<<endl;
- while (((n % cont)==0) && (n!=1)){
- n=n/cont;cant++;
- //cout<<n<<endl;
- }
- cont++;
- }
- //cout<<i<<"-> cant: "<<cant<<endl;
- m.insert (pair<char,int>(cant,i));
- }
- int k=1;
- map<int,int>mm;
- for (multimap<int,int>::iterator it=m.begin(); it!=m.end(); ++it){
- mm[k]=(*it).second;
- k++;
- }
- int id=0;
- while((cin>>num) && (num!=0)){
- id++;
- cout <<"Case " <<id<<": " << mm[num] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment