我这个效率最高,最直观
#include
#include
void main()
{
_开始:
printf("请输入待分析的正整数\n");
int n待分析;
scanf("%d", &n待分析);
if(n待分析 < 0)
goto _开始;
int n因子上限 = (int) sqrt((double)n待分析);
int n因子个数 = 0;
for(int i = 2; i <= n因子上限; ++i)
{
int n另一个因子 = n待分析 / i;
if(n待分析 == n另一个因子 * i)
{
printf(" (%d, %d) ", i, n另一个因子);
++n因子个数;
}
}
printf("\n");
if(n因子个数 == 0)
printf("No divisor! It is a prime number\n");
goto _开始;
}
程序执行
请输入待分析的正整数
16
(2, 8) (4, 4)
请输入待分析的正整数
256
(2, 128) (4, 64) (8, 32) (16, 16)
请输入待分析的正整数
1024
(2, 512) (4, 256) (8, 128) (16, 64) (32, 32)
请输入待分析的正整数
255
(3, 85) (5, 51) (15, 17)
请输入待分析的正整数
小力庭 2013-4-20 欢迎到我微博上交流
weibo.com/litingsoft
#include
void main()
{
int a,b=0;
scanf("%d",&a);
for(int i=2;i {
if(a%i==0)
{
printf("%d\t",i);
b++;
}
}
if(b==0)
printf("No divisor! It is a prime number\n");
}
main()
{
int m,n,i;
scanf(“%d”,&m);
for(i=2,n=0;i
if(m%i==0) {printf(“%5d”,i);n++;}
}
if(n==0) printf("No divisor! It is a prime number\n");
}