0003

来源:互联网 发布:东华软件数据库 编辑:程序博客网 时间:2024/06/05 07:42

http://projecteuler.net/problems

#include <stdio.h>#include <math.h>#defineN317584931803#definedivisible(x, y)!(remainder((x),(y)))/* Find the largest prime factor of 317584931803 */int main(int argc, char *argv[]) {double mcp3(double n);printf("--- %.1f\n", mcp3(N));return 0;}double mcp3(register double n) {double sqrt(double x);double remainder(double x, double y);register double d = 3;register double rt;if(n < 2)return -1;while(divisible(n, 2))n /= 2;if(n == 1)return 2;rt = sqrt(n);while(d <= rt) {if(divisible(n, d)) {n /= d;rt = sqrt(n);continue;}d += 2;}return n;}
#include "iostream"inline bool isprime(const __int64 number){   static __int64 i;   if(!(number % 2))      return false;   for(i = 3; i*i <= number; i += 2)      if(!(number % i))         return false;   return true;}int main(){   const __int64 number = 317584931803;   __int64 max = 0;   for(__int64 i = 3; i*i <= number; i += 2)   {      if(!(number % i))         if(isprime(i))            max = i;   }   std::cout << max;   return 0;}
__int64 number = 317584931803;   int divisor = 2;   while (number > 1) {      if (0 == (number % divisor)) {         number /= divisor;         divisor--;      }      divisor++;   }




 

原创粉丝点击