编写正确一定采纳
(1)
代码文本:
#include "stdio.h"
int prime(int n){//素数
int i;
if(n>2 && !(n&1) || n<2)
return 0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int n,m,t,v;
printf("Please enter a positive integer...\nn=");
if(scanf("%d",&n)!=1 || n<1){
printf("Input error, exit...\n");
return 0;
}
printf("%d = ",n);
for(v=1,t=n>>1,m=2;m<=t;m>2 ? m+=2 : m++)
if(prime(m))
while(n%m==0){
printf(v==0 ? "x%d" : "%d",m);
n/=m,v=0;
}
if(v)
printf("No factor...");
printf("\n");
return 0;
}
(2)
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,m,t,s;
for(n=6;n<=10000;n+=2){
t=(n>>1)+(n&1);
for(s=0,m=1;m<=t;m++)
if(n%m==0)
s+=m;
if(s==n){
printf("%4d = 1",n);
for(m=2;m<=t;m++)
if(n%m==0)
printf("+%d",m);
putchar('\n');
}
}
return 0;
}