Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245708
  • 博文数量: 47
  • 博客积分: 1229
  • 博客等级: 中尉
  • 技术积分: 568
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-20 10:06
文章分类

全部博文(47)

文章存档

2014年(1)

2013年(7)

2012年(1)

2011年(38)

分类: C/C++

2011-03-02 23:23:10


Problem
The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ?
  1. #include <stdio.h>

  2. #define NUM    600851475143UL
  3. /* #define NUM    13195 */

  4. int isprime(int n)
  5. {
  6.     int i;

  7.     for (i=3; i < n; i+=2) {
  8.         if (!(n%i))
  9.             return 0;
  10.     }

  11.     return 1;
  12. }


  13. int main(int argc, const char *argv[])
  14. {
  15.     unsigned long long i, prime, num;

  16.     num = NUM;
  17.     for (i=3; i <= num; i+=2) {
  18.         if (!(NUM % i)) {
  19.             printf("%llu\n", i);
  20.             if (isprime(i)) {
  21.                 prime = i;
  22.             }
  23.             num /= i;
  24.             printf("num: %llu\n", num);
  25.         }
  26.     }

  27.     printf("Largest prime: %llu\n", prime);

  28.     return 0;
  29. }

is_prime 还可再优化。在下一道题中呈现。
阅读(1003) | 评论(0) | 转发(0) |
0

上一篇:euler2

下一篇:euler5

给主人留下些什么吧!~~