|
发表于 2021-3-17 15:15:48
|
显示全部楼层
- #include <stdio.h>
- #define num 600851475143
- int prime(long long n)
- {
- int r = 0 ;
- long long i ;
- if(n > 1) {
- if((n % 2) && (n % 3) && (n % 5) && (n % 7)) {
- for(r ++ , i = 3 ; i * i <= n ; i += 2) {
- if(! (n % i)) {
- r -- ;
- break ;
- }
- }
- } else if ((n == 2) || (n == 3) || (n == 5) || (n == 7)) {
- r ++ ;
- }
- }
- return r ;
- }
- main(void)
- {
- long long d , i , k ;
- for(d = 0 , i = 2 ; i < num ; i ++) {
- if(! (num % i)) {
- k = num / i ;
- if(prime(k)) {
- d = k ;
- break ;
- }
- }
- }
- if(d) printf("这个数的最大质因数是 : %I64d\n" , d) ;
- else printf("这个数没有质因数。\n") ;
- }
复制代码
编译、运行实况
- D:\0002.Exercise\C>cl x2.c
- 用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29334 版
- 版权所有(C) Microsoft Corporation。保留所有权利。
- x2.c
- Microsoft (R) Incremental Linker Version 14.28.29334.0
- Copyright (C) Microsoft Corporation. All rights reserved.
- /out:x2.exe
- x2.obj
- D:\0002.Exercise\C>x2
- 这个数的最大质因数是 : 6857
- D:\0002.Exercise\C>
复制代码 |
|