#include <stdio.h>
#include<math.h>
/*
函数声明
*/
int prime(int p);
int primeSum(int m,int n);
/*
主函数
*/
int main()
{
int p,m,count;
m=49;
count=0;
//对p进行赋值 判断是否是素数 1代表是素数 0代表不是素数
printf("输入一个数:%d \n",m);
//50~20000之间
if(m>=50&&m<=20000){
for(p = m-1; p>0;p--){
//如果是素数就输出 count++
if(prime(p)){
//如果是素数,判断小于输入的数字
printf("%6d ",p);
count++;
if(count==10){
break;
}
}
}
}else{
printf("数据格式不合格");
}
//指定区间内的素数和;
//printf("区间和是:%d ",primeSum(1,10));
//return 0;
}
/*
判断是否是素数
*/
int prime(int p)
{
//c语言想用变量,首先进行声明,首先声明变量的类型,然后进行赋值
int j;
//判断如果传入的参数小于或等于1,就返回0;0代表是不是素数,1代表是素数
if(p<=1)
return 0;
//如果等于2的话就返回1;
else if(p==2)
return 1;
else
{
//输入的是2以上的数的时候,
//对输入的数 进行处理(除了本身,逐个进行相除)
for(j=2;j<=p-1;j++)
{
//素数判断条件除了1和本身之外还有别的数,能被它整除;
if(p%j==0)
return 0;
}
return 1;
}
}
/*
指定区间的素数和
*/
int primeSum(int m,int n)
{
//定义两个变量
int i,sum;
sum=0;
//如果输入m>n 不合理
if(m>n){
return 0;
}else{
//从m到n 逐个进行判断
for(int i=m;i<=n ;i++){
//将m到n之间的数
//逐个传入到判断是否是素数的函数中进行判断
if(prime(i)==1){
//等于1 说明是素数,然后求和将数值赋值给sum
sum =sum+i;
}
}
//最后将数值返回给函数调用者
return sum;
}
}