数字着色
时间:2009-08-08 来源:ubuntuer
例子:
输入:(1<= N <=10000)
16
输出:
5
1 2 2 3 2 3 2 4 3 3 2 4 2 3 3 5
这个关键是分析清楚对于一个非质数其颜色为A[i*j] = max(A[i],A[j])+1,质数就为A[1] + 1. note: 我这里分析的时候是按数组下标为1分析的。程序内面是按0。 其实这题如果是单单只求个数的话,就好弄了。就为sqrt(N*1.0)+1.刚又发现如果pow(2,m)<N<=pow(2,n)得话,就是n。仅仅是一家之言^_^ 好了,下面是代码。经过了一定得测试.大家跑跑要是有问题,再说。
#include <stdio.h> |