用C++编写,分别用while、do-while、for循环语句的程序,求不大于n(n从键盘输入)的素数之和。

分别用while、do-while、for循环语句编写程序,求不大于n(n从键盘输入)的素数之和。程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。

for

#include <stdio.h>
int isprime( int n);
int main()
{
    int sum = 0;
    int n,i;
    printf("请输入n: ");
    scanf("%d",&n);
    for( i=1; i<=n; i++ ) {
        if(isprime(i)){
            sum+=i;
        }
    }
    printf("%d", sum);
    return 0;
}
int isprime(int n)
{
    int i;
    if(n<=3) return n>1;
    for(i=2;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}

while

#include <stdio.h>
int isprime( int n);
int main()
{
    int sum = 0;
    int n,i;
    printf("请输入n: ");
    scanf("%d",&n);
    i=1;
    while (i<=n) {
        if(isprime(i)){
            sum+=i;
        }
        i++;
    }
    printf("%d", sum);
    return 0;
}
int isprime(int n)
{
    int i;
    if(n<=3) return n>1;
    for(i=2;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}

do-while

#include <stdio.h>
int isprime( int n);
int main()
{
    int sum = 0;
    int n,i;
    printf("请输入n: ");
    scanf("%d",&n);
    i=1;
    do{
        if(isprime(i)){
            sum+=i;
        }
        i++;
    } while (i<=n);
    printf("%d", sum);
    return 0;
}
int isprime(int n)
{
    int i;
    if(n<=3) return n>1;
    for(i=2;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}

#include <stdio.h>//素数又称质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除
int main()
{
    int i=0,N;
    printf("请输入一个正整数:");
    scanf("%d",&N);
    do
    {
        i++;
        int k=0;
        for (int j=0;j<i;j++)
        {
            if (i%(j+1)==0)
                k++;
        }
        if (k==2)
            printf("%d\n",i);
    }while (i<N-1);
    return 0;
}

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632