您的位置:首页 > 其它

北大ACM poj 1011

2016-03-30 15:24 162 查看
部分

#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才会重点啊!!!)剪枝老子不会啊!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: