| 
 | 
 
 
发表于 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>
 
  复制代码 |   
 
 
 
 |