http://acm.nankai.edu.cn/p1007.html,
http://acm.nankai.edu.cn/p1249.html这是两个关于分解素数的问题,一个是分解为素数之和,一个是分解为素数之积。自己写的总TLE,于是参考了别人的代码,感觉方法果然巧妙。对于素数之和是找到素数规律了。
nkoj 1007
#include<stdio.h>
#include<stdlib.h>
int n;
int main()
{
scanf("%d",&n);
if(n%3){
switch(n%3){
case 1:printf("2 2 ");n-=4;break;
case 2:printf("2 ");n-=2;break;
}
}
while(n){
printf("3 ");
n-=3;
}
system("pause");
return 0;
}
code
nkoj 1249
#include<stdio.h>
#include<math.h>
int n,a;
int main()
{
scanf("%d",&n);
while(n--){
scanf("%d",&a);
int i,flag = 0;
int b=a;
for(i = 2;i <= b/2;i++){
if(a%i==0 && flag==0){
flag = 1;
a/=i;
printf("%d",i);
}
while(a%i==0){
a/=i;
printf("*%d",i);
}
}
if(flag == 0)printf("%d",a);
printf("\n");
}
return 0;
}