回复 20楼 九转星河
给自己的数据增加了一下说服力,不过这个程序证明其准确性感觉很困难啊
不知道还有没有问题???

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]


2016-12-17 00:43
[此贴子已经被作者于2016-12-17 06:05编辑过]
2016-12-17 06:02
[此贴子已经被作者于2016-12-17 10:33编辑过]

2016-12-17 10:20
程序代码:#include <stdio.h>
int isprime(char* s,int sp,int len)
{//取出串s指定开始位置sp处长度为len的数字转换为整数并判断是否为素数
int i,j;
for(i=0,j=0;i<len;i++)j=j*10+s[i+sp]-'0';
for(i=2;i*i<=j&&j%i;i++);
return j>1&&i*i>j;
}
int fun(char *s,int start)
{
int i,j,k;
if(!s[start])return 1;
for(i=6;i;i--) //倒着分割可以尽量使分割的次数减少,每次都获取一个最大的素数
{
j=0;
if(isprime(s,start,i))j=fun(s,start+i);
if(j)
{
for(k=0;k<i;k++)printf("%c",s[start+k]);
printf(",");
return 1;
}
}
if(!start)printf("无法进行全部的素数分割!");
return 0;
}
void main()
{
char s[]="1447160917891993";
//char s[]="1111111111111111111111131";
//char s[]="14471609178919938";
fun(s,0);
printf("\n");
}
2016-12-17 11:04

2016-12-17 11:33
2016-12-17 11:40
要好好学习一下才行
[此贴子已经被作者于2016-12-17 12:57编辑过]

2016-12-17 12:11
已修复
[此贴子已经被作者于2016-12-17 12:59编辑过]

2016-12-17 12:16
2016-12-17 13:59
2016-12-17 14:06