一个c++问题代码语言

输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

如果有帮助的话 记得请采纳哦


#include<iostream>
#include<cmath>
using namespace std;
int isprime(int n)  //定义函数判断是否是素数 
{
    int i;
    if(n==1)
    {
        return 0;  //特殊情况,1不是素数,单独进行处理 
    }
    for(i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            return 0;  
        }
    }
    return 1;
}
int main()
{
    int M,N;
    int i;
    int num=0;    //num用来记下素数的个数 
    int numbers=0;  //numbers用来存放素数的和 
    cin>>M>>N; 
    for(i=M;i<=N;i++)
    {
        if(isprime(i))   //如果是素数,进行计数并且求和操作 
        {
            num++;
            numbers+=i;
        }
    }
    cout<<num<<" "<<numbers;
    return 0;
    
}

其实这个程序还是比较基础的,建议同学自己上手写写试试
说不定你写着写着思路就来了呢
一定要多上级实验哦
加油加油

img

#include <iostream>
using namespace std;

int IsPrime(unsigned int n);
int fun(unsigned int m, unsigned int n);
int main()
{                         
    int m = 0,n = 0,sum = 0,i = 0;
       cin>>m>>n;
    
    sum = fun(m,n);
    cout<<sum;
    return 0;
}                         
int fun(unsigned int m, unsigned int n)
{                         
    int sum = 0,i,j,max=0,min=100000,s=0;
    int isPrime;
    for(j = m; j<= n; j++)
    {                         
         isPrime = 1;
        for(i = 2; i < j; i++)
        {                         
            if(j%i==0)
            {                         
                isPrime = 0;
                break;
            }
        }
       if(isPrime==1){
           s+=1;
            sum+=j;
       }
      
    }
    cout<<s<<" ";
    return sum;
}                         
 
 

#include <iostream>
using namespace std;

bool isPrime(int x);

int main()
{
    int m, n;
    cin>>m>>n;
    if(m < 1 || m > n || n > 500)
    {
        cout<<"输入错误\n"<<endl;
        return -1;
    }
    int sum = 0;
    for(int i = m; i <= n; i++)
    {
        if(isPrime(i) == true){
                cout<<i<<" ";
                sum += i;
        }
    }
    cout<<endl;
    cout<<"sum = "<<sum<<endl;

    return 0;
}
bool isPrime(int x){
    if(x < 2 || x > 500)
        return false;
    else{
        for(int i = 2; i < x; i++){
            if(x % i == 0)
                return false;
        }
        return true;
    }
}