C 素数之和

C 素数之和,c,C,我想计算101和203之间的偶数素数之和。但是我的代码的输出是错误的,输出是52。 有人能帮我得到正确的输出吗?在我的代码中,我假设偶数肯定不是素数,这就是我逃避它们的原因。我想用素数函数来求解它。我该怎么办?多谢各位 #include <stdio.h> int prime(int n) { int i=2; int n2; n2 = n/2; while (1<=n2) { if (n%i == 0) {

我想计算101和203之间的偶数素数之和。但是我的代码的输出是错误的,输出是52。 有人能帮我得到正确的输出吗?在我的代码中,我假设偶数肯定不是素数,这就是我逃避它们的原因。我想用素数函数来求解它。我该怎么办?多谢各位

#include <stdio.h>
int prime(int n)
{
    int i=2;
    int n2;
    n2 = n/2;
    while (1<=n2) {
        if (n%i == 0) {
            return 0;
        } else {
            return 1;
        }
        i++;
    }
}

int main()
{
    int sum=0;
    for (int i=101; i<=203; i+=2) {
        if (prime(i)==1) {
        }
        sum+=1;
    }
    printf("%d \n",sum);
    return 0;
}
#包括
整数素数(整数n)
{
int i=2;
int n2;
n2=n/2;

而(1首先:在prime方法中不需要'i++;',因为这是无法访问的代码

第二:尝试此函数检查数字是否为素数:

#include <stdio.h>
int prime(int n)
{
    for (int i = 2; i < n; i++) {
        if (n % i == 0 && i != n) return 0;
    }
    return 1;
}

int main()
{
    int sum=0;
    for (int i=101; i<=203; i+=2) {
        if (prime(i)==1){
          sum+=i;
        }
    }
    printf("%d \n",sum);
}
#包括
整数素数(整数n)
{
for(int i=2;i对于(inti=101;i来说,没有偶数这样的东西……你总是得到0

但要真正回答你的问题

你真的不需要在你的第一个函数中加入i++了

for (int i=101; i<=203; i++)
{
   i++
   if (prime(i)==1)
   {
     sum+=i;
   }
}

for(inti=101;i您的代码中有几个问题

for
循环中:

    for (int i=101; i<=203; i+=2) {
    if (prime(i)==1){
    }sum+=1;
函数
prime()
应该仅在
while
循环检查
n%i==0
的所有
i
值和
i
的任何值时返回
1
。因此,您需要将
返回1
移出
while
循环

此外,在
while
循环的
prime()
中,这是不正确的:

while (1<=n2) {

while(1即使是介于101和203之间的素数???你打算计数或求和吗?
sum+=i
如果
i
是素数…所以我认为结果应该是3167有一个是偶数。一个可能是偶数,两个。据我所知,两个不在他们寻找的范围内。所以在answe中说R
while (1<=n2) {
while (i<=n2) {
#include <stdio.h>
int prime(int n)
{
    int i=2;
    int n2;
    n2 = n/2;
    while (i<=n2) {
        if (n%i == 0) {
            return 0;
        }
        i++;
   }
   return 1;
}

int main()
{
    int sum=0;
    for (int i=101; i<=203; i+=2) {
        if (prime(i)==1){
            sum+=i;
        }
    }

    printf("%d \n",sum);
    return 0;
}