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;
}