#include <stdio.h>
#include <iostream>
using namespace std;
//只包含因子2、3和5的數稱作醜數(Ugly Number)
bool IsUgly(int number)
{
while(number % 2 == 0)
number /= 2;
while(number % 3 == 0)
number /= 3;
while(number % 5 == 0)
number /= 5;
if(number == 1)
return true;
else
return false;
}
//返回從1開始第index個醜數
int GetUglyNumber(int index)
{
int number(1);
int sumOfUglyNumber = 1;
while(sumOfUglyNumber != index )
{
number++;
if (IsUgly(number))
{
sumOfUglyNumber++;
}
}
return number;
}
void main()
{
int index = -1;
printf("please input one number\n");
while(index < 1)
{
//假設輸入正常
cin>>index;
if(index < 0)
printf("please input one positive number \n");
}
if(index == 1)
{
cout<<1<<endl;
return;
}
int uglyNumber = GetUglyNumber(index);
cout<<uglyNumber<<endl;
}
UglyNumber
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.