输入在一行中给出两个正整数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;
}
其实这个程序还是比较基础的,建议同学自己上手写写试试
说不定你写着写着思路就来了呢
一定要多上级实验哦
加油加油
#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;
}
}