|
发表于 2024-4-3 03:29:27
|
显示全部楼层
本帖最后由 jackz007 于 2024-4-3 04:08 编辑
- #include <stdio.h>
- int main(void)
- {
- int num , i , k ;
- scanf("%d" , & num) ;
- for(i = 2 , k = num ; i < k ;) {
- if((k % i) == 0) { /* 问题主要出在这里,判断整除应该用取余运算 */
- if(k == num) printf("%d = %d" , num , i) ;
- else printf(" x %d" , i) ;
- k /= i ;
- } else i ++ ;
- }
- if(k == num) printf("%d 是素数\n" , num) ;
- else printf(" x %d\n" , k) ;
- }
复制代码
编译、运行实况:
- D:\[exercise]\C>g++ -o x x.c
- D:\[exercise]\C>x
- 512
- 512 = 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2
- D:\[exercise]\C>x
- 1024
- 1024 = 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2
- D:\[exercise]\C>x
- 8
- 8 = 2 x 2 x 2
- D:\[exercise]\C>x
- 9
- 9 = 3 x 3
- D:\[exercise]\C>x
- 125
- 125 = 5 x 5 x 5
- D:\[exercise]\C>x
- 325
- 325 = 5 x 5 x 13
- D:\[exercise]\C>
复制代码 |
|