作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
#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;
}
但是我还是遇到同样的问题
最佳答案
出现 fatal error :
for(lower;lower<=upper; lower+2)
如果你使用一个像样的编译器并打开所有警告,编译器会告诉你哪里出了问题。相反,我会告诉您:lower+2 只是计算没有副作用的表达式 lower+2。它不会变低。您可能希望它降低 2,但事实并非如此。
可能错误较多,我不再看第一个了。
哦,好吧,我又看了一遍代码,发现了这个:
if( prime(tempL == 0 ) //after decrementing we find a prime
tempL == 0 是比较 tempL 和 0 的表达式;如果 tempL = 0,结果为 1,否则为 0。因此,您调用质数 (1) 或质数 (0)。在这两种情况下,prime() 函数都返回 0,因此永远不会执行 if。
哦,我又做了一次...
您的函数“prime”返回的值完全错误。如果数字是质数,则返回 0,否则返回 1。除非数字是从 0 到 4,否则它总是返回 0。对于数字 = 2 或 3 是错误的,但对于 1 和 4 是正确的...
关于c - 用 C 代码实现哥德巴赫猜想,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28636029/
我是操作系统新手,我正在尝试执行下面提到的以下命令,但无法解决它不起作用的原因。 我正在尝试执行命令 ls -l | grep D|grep De 这是我的代码 - #include #include
我是一名优秀的程序员,十分优秀!