基本上,我一直在尝试完成 projecteuler.net 上的第三个问题。该示例为我提供了数字 13195,该程序(用 C 编写)准确地返回了 5 7 13 29 的素数树,但是当我输入问题编号 600851475143 时,没有任何反应。大约一年前,我还在 Python 中制作了一个类似的程序,它解决了 600851475143 的因子树。我认为这与我正在使用的数据类型有关,但我找不到可靠的信息来源,并且如何用浮点数/双精度数/大东西做模数。
谢谢,
克莱门特
代码:
//
// main.c
// Project Euler Question 3
//
// Created by Cwbh on 2/11/13.
// Copyright (c) 2013 Cwbh. All rights reserved.
//
#include <stdio.h>
#include <math.h>
int is_prime(int x);
int main(int argc, const char * argv[])
{
int pft[100];
int number;
int pointerloc = 0;
printf("Enter the number to find the Prime Factor Tree of: ");
scanf("%d", &number);
if (is_prime(number) == 0) {
for (int i = 2; i < number; i++) {
if (number%i == 0 && is_prime(i) == 1) {
pft[pointerloc] = i;
pointerloc++;
}
}
}else{
printf("You've entered a prime number to begin with!");
}
for (int i = 0; i < pointerloc; i++) {
printf("%d\n",pft[i]);
}
return 0;
}
int is_prime(int x){
int prime = 1;
for (int i = 2; i < x; i++) {
if (x%i == 0) {
prime = 0;
break;
}
}
return prime;
}