ifactor.c
来自「国外网站上的一些精典的C程序」· C语言 代码 · 共 68 行
C
68 行
/*** ifactor.c -- print prime factorization of a number**** Ray Gardner -- 1985 -- public domain*/#include <stdio.h>#include <stdlib.h>int prevfact = 0;void factor (long);void show (long, int);main (int argc, char *argv[]){ while ( --argc ) factor(atol(*++argv)); return 0;}void factor (long n){ long d; int k; long n0 = n; prevfact = 0; printf("%ld ",n); if ( n < 2 ) { printf("is less than 2.\n"); return; } else if ( n > 2 ) { d = 2; for ( k = 0; n % d == 0; k++ ) n /= d; if ( k ) show(d,k); for ( d = 3; d * d <= n; d += 2 ) { for ( k = 0; n % d == 0; k++ ) n /= d; if ( k ) show(d,k); } } if ( n > 1 ) { if ( n == n0 ) printf(" is prime"); else show(n,1); } printf("\n");}void show (long d, int k){ if ( prevfact ) printf(" * "); else printf(" = "); prevfact++; printf("%ld",d); if ( k > 1 ) printf("^%d",k);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?