部分
#include<stdio.h>
#include<math.h>
int main(){
float a,c;
float b;
int i,j,n;
int var[1000];
for(i=0;i<1000;i++){
var[i]=0;
}
int jar[1000];
for(i=0;i<1000;i++){
jar[i]=0;
}
scanf("%f",&a);
b=a/2;
for(i=2;i<(int)b;i++){
c=((int)a)%i;
if((int)c==0){
printf("这个数字不是质数");
break;
}
else {
printf("这个数字是质数");
break; }
}
for(i=2,j=-1;i<=(int)b;i++){
c=((int)a)%i;
if((int)c==0){
j++;
printf("\n%d ",i);
var[j]=i;
}
}
return 0;
}
我的思路是这样的
首先,把所有数据加起来,最短的肯定是这个数的约数。
而且要保证这个数字最小,那么合起来的木棍要最多,所以最多木棍的长度一定小于N,这样就可以过滤掉很大部分的数字,减少了计算量,接下来匹配…(这tm才会重点啊!!!)剪枝老子不会啊!!!!