题解:
遍历法:
1、如果一个数能够被2整除,那么让他继续除以2;
2、如果一个数能够被3整除,那么让他继续除以3;
3、如果一个数能够被5整除,那么让他继续除以5;
4、如果最后这个数变为1,那么这个数就是丑数,否则不是。
数据太水了。
AC代码:
#include<cstdio> using namespace std; int main(){ int n,t=0; scanf("%d",&n); for(int i=2;;i++){ if(t==n) break; int c=i; for(;!(c&1);c>>=1); for(;c%3==0;c/=3); for(;c%5==0;c/=5); if(c==1){ printf("%d ",i); t++; } } return 0; }