#include <stdio.h>
int prime(int num);
int main() {
int upper, lower, tempL, x;
printf("Enter lower limit:");
scanf("%d", &lower);
printf("Enter upper limit:");
scanf("%d", &upper);
for (lower; lower <= upper; lower + 2) {
tempL = lower;
for (lower; lower != 0; lower--) {
if (prime(lower) == 0) { //after decrementing we find a prime
x = tempL - (lower); x = the original lower limit minus the current decremented lower limit
if (prime(x) == 0) { //if x if prime do following
printf("%d = %d + %d\n", tempL, lower, x); //print
break;
}
}
}
}
}
int prime(int number) { //returns 0 if number is prime
int i;
for (i = 2; i < number / 2; i++) {
if (number % i == 0) {
return 1;
}
}
return 0;
}
Это то, что у меня есть до сих пор ... все, что он делает, это бесконечно печатает
999983 = 999983 + 0
Я действительно застрял здесь. Я пытался получить это в течение последних 8 часов.
Я пытаюсь использовать гипотезу Гольдбаха, чтобы распечатать числа как суммы простых чисел. Как только он напечатает число n, он должен перейти к n+1, пока не достигнет верхнего предела.
Теперь у меня есть это
#include <stdio.h>
int prime(int num);
int main() {
int upper, lower, tempL, x;
printf("Enter lower limit:");
scanf("%d", &lower);
printf("Enter upper limit:");
scanf("%d", &upper);
for (lower; lower <= upper; lower + 2) {
tempL = lower;
for (tempL; tempL != 0; tempL--) {
if (prime(tempL == 0) { //after decrementing we find a prime
x = lower - (tempL); x = the original lower limit minus the current decremented lower limit
if (prime(x) == 0) { //if x if prime do following
printf("%d = %d + %d\n", tempL, lower, x); //print
break;
}
}
}
}
}
int prime(int number) { //returns 0 if number is prime
int i;
for (i = 2; i < number / 2; i++) {
if (number % i == 0) {
return 1;
}
}
return 0;
}
Но я все еще получаю ту же проблему
prime()
будет работать более чем в два раза быстрее, еслиs=(int)sqrt(number); for(i=3; i<=s; i+=2)
отсеетnumber==1
иnumber==2
. - person Weather Vane   schedule 20.02.2015for ( ; lower <= upper; lower+=2) { ...}
- person FoggyDay   schedule 20.02.2015