回复 19# 的帖子
一般情况就是4位数吧 ----------------解决方案--------------------------------------------------------
四位数还好。。。。。
起码搜索的时候不用太长。。。
----------------解决方案--------------------------------------------------------
问一下,时间复杂度为O(sqrt(n))或者O(n^0.5)
这个复杂度满意不?偶做出这个复杂度的
[color=white]
----------------解决方案--------------------------------------------------------
雨中飞燕 怎么没音了 等到现在咯 等着剽窃你的算法呢 E 是学习 HOHO
----------------解决方案--------------------------------------------------------
我的是把任何数分解成不同的素数之和(如果不存在就提示不存在)
#include "stdio.h"#include"stdlib.h"
int a[1000];
int b[1000]={3};
int j=0;
int b1;
int rem=1;
int pn()
{ int flag;
if(j>0&&rem)
b[j]=b[j-1];
rem=1;
b[j]=b[j]+1;
do
{ flag=0;
for(int i=2;i<=b[j]-1;i++)
if(b[j]%i==0)
flag=1;
}while(b[j]++&&flag);
b[j]=b[j]-1;
return b[j];
}
int reduce(int s,int n)
{
if(s>0)
{
n=pn();
j++;
}
if(s==0)
return 1;
if(s<0)
{
j=j-2;
rem=0;
return 0;
}
if(s>b1||b[j]>b1)
{
printf("没有结果!");
exit(0);
}
if(reduce(s-n,n))
{
return 1;
}
return(reduce(s+b[j],b[j]));
}
int main()
{
scanf("%d",&b1);
reduce(b1,3);
for(int i=0;i<j;i++)
printf("%d ",b[i]);
return 0;
}
----------------解决方案--------------------------------------------------------
http://bbs.bccn.net/thread-208533-1-1
我已经发了我的代码了,看个链接这里
----------------解决方案--------------------------------------------------------
我的解法:
[url]http://bbs.bccn.net/thread-208638-1-1[/url]
----------------解决方案--------------------------------------------------------
2008的解:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 157
[[it] 本帖最后由 卧龙孔明 于 2008-4-12 17:05 编辑 [/it]]
----------------解决方案--------------------------------------------------------