标题:能帮我看一下这样有什么问题吗,刚刚学c
只看楼主
小柒oO
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-29
结帖率:100%
已结贴  问题点数:20 回复次数:5 
能帮我看一下这样有什么问题吗,刚刚学c
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入格式:
两个整数,第一个表示n,第二个表示m。

输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:
2 4

输出样例:
15
#include<stdio.h>

int main()
{
    int i,j,k,l=1,temp;
    int m,n,sum=0;
    int a[200];
    scanf("%d,%d",&m,&n);
    for(j=1;j<1000;j++)
    for(i=2;i<j;i++)
    {
        temp=j%i;
        if(temp==0)
       {a[l]=j;
        l++;
        }
    }
    for(k=n;k<=m;k++)
    {
        sum+=a[k];
    }
    printf("%d",sum);
}
搜索更多相关主题的帖子: 素数 整数 int temp for 
2018-05-31 18:24
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
得分:0 
程序代码:
#include<stdio.h>

int main()
{
    int i,j,k,l=0,temp;
    int m,n,sum=0;
    int a[200];
    scanf("%d%d",&n,&m);
   for(j=2;j<1000;j++)
    {
        for(i=2;i<j;i++)
        {
            temp=j%i;
            if(temp==0)
           {
            break;
            }
        }
        if (l<199)
        {
        a[l]=j;
        l++;
        }
    }
    for(k=n;k<=m;k++)
    {
        sum+=a[k];
    }
    printf("%d\n",sum);
}

有些小错误一起修改了,最主要的错误的你上面哪个程序会出现数组越界赋值的情况。

printf("萌新一枚,请多指教");
2018-05-31 20:04
小柒oO
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-29
得分:0 
回复 2楼 ab1412
不对啊,你这也不行啊
2018-05-31 20:25
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
程序代码:
        temp=j%i;
        if(temp==0)
       {a[l]=j;
        l++;
        }

数组a是存素数吧
temp==0 表示 i能整除j
为什么你认为能整除的是素数
和素数的定义相反了啊

https://zh.
2018-05-31 20:44
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:5 
回复 2楼 ab1412
你更干脆 你把所有数字都存到数组里面了 没做限制

https://zh.
2018-05-31 20:45
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
得分:15 
回复 3楼 小柒oO
程序代码:
#include<stdio.h>

int main()
{
    int i,j,k,l=0,temp;
    int m,n,sum=0;
    int a[200];
    scanf("%d%d",&n,&m);
   for(j=2;j<1000;j++)
    {
        for(i=2;i<j;i++)
        {
            temp=j%i;
            if(temp==0)
           {
            break;
            }
        }
        if(temp==0)
        {
            continue;
        }
        if (l<199)
        {
        a[l]=j;
        l++;
        }
    }
    for(k=n-1;k<=m-1;k++)
    {
        sum+=a[k];
    }
    printf("%d\n",sum);
}
  

抱歉抱歉,粗心了,漏跳了一个循环

printf("萌新一枚,请多指教");
2018-05-31 20:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487485-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.634767 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved