输出m到n之间的素数

作者&投稿:独孤马 (若有异议请与网页底部的电邮联系)
C++输出m与n之间的素数的个数以及这些素数的和~

#include //启用断言
#include //需要数学函数支持
#include //C++/io操作


class IPrime //支持检测素数的算法改进
{
public:
virtual bool isPrime(unsigned int)=0;
};


class SPrime:public IPrime//一种检测n是不是素数的算法
{
public:
bool isPrime(unsigned int n)
{
if(n<2)
return false;
unsigned int ncount=(unsigned int)sqrt(n);
for(unsigned int i=2;i<=ncount;i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
};


int printPrime(unsigned int m,unsigned int n,int& sum)//sum 是out参数
{

assert(n>=m); //前置条件判断 n<m,会abort()程序


sum=0; //out 参数置零

IPrime& in=SPrime(); //选择一种判断prime的算法


int ncnt=0; //统计素数个数
for(unsigned int i=m;i<=n;i++) //区间[m,n]之间遍历,如果检测到素数就输出
{
if(in.isPrime(i))
{
++ncnt;
sum+=i;
cout<<i<<" ";


if(ncnt%5==0)
cout<<endl;
}
}


return ncnt;}
//测试
void main()
{
unsigned int n=0,m=0;
cout<<"输入m,n. m和n之间用空格隔开,键入ENTER结束输入"<<endl;
cin>>m>>n;
int ncnt,sum;
cout<<"========================="<<endl;
ncnt=printPrime(m,n,sum);
cout<<"
========================="<<endl;
cout<<"素数个数="<<ncnt<<endl;
cout<<"素数总和="<<sum<<endl;


}

#include int main(){int u,i,n,m,s=0;scanf ("%d%d",&n,&m);for (u=n;u1 && s==0){printf ("%d
",u);}}return 0;}

#include<stdio.h>
void main()
{int i,j,m,n,mark=1,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{for(j=2;j<i;j++)
if(i%j==0)
mark=0;
if(mark==1)
{
if(i!=1&&i!=0)//加上这句,以免输出1,因为1既不是素数,也不是合数
printf("%4d",i);
k++;
}
mark=1;//加上这么一句,因为只要有一个mark==0,后面不改变mark的值
}
if(k==0)
printf("没有素数");
}

#include<stdio.h>
int main() 
{
int cnt=0;//素位计数 
int zh=0;
int x;
int y;
int prt;//是否是素数 
int n,m;
scanf("%d %d",&n,&m); 
if(n>0&&m>=n&&m<200){// 判断输入是否正确 
for(x=2;cnt<m;x++){// 开始循环判断2到m个素数之间所有素数 
prt=1;// 初始化判断逻辑数为1 (是) 
for(y=2;y<x;y++){// 判断当前X是否为素数 
if(x%y==0){
prt=0;// X不为素数 
break;// 跳出对于当前X的循环 
}
}
if(prt==1) cnt++;// 素数计数 
if(cnt>=n&&prt==1) zh=zh+x;// 输出n到m之间素数和到zh 
}



}else{
printf(" 你输入的范围不正确(0到200)");
}
printf("%d",zh);

return 0;
}



C语言中m--n之间的素数。用调用函数做 还要每个行输出10个。我做了...
printf("Enter m,n\\n");scanf("%d %d",&m,&n);count = 0; \/* count记录素数的个数,用于控制输出格式 *\/ for(a =m; a<=n; a++){ if(isprime(a)){ if(count % 9 == 0) \/* 如果count是10的倍数,换行 *\/ \/\/应该为9 printf("\\n");} \/* 累加已经输出的素数...

输出从m到n之间素数的个数与素数之和
void main() { int i,j,k,m,n,s=0,num=0; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) { k=i>1; for(j=2;j<=sqrt(i);j++) if(i%j==0)k=0; if(k){s+=i;num++;} } printf("N=%d,Sum=%d\\n",num,s); } 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他...

求教c语言题:1输出闭区间m到n之间的素数。2输入一组整数,输出它们最大...
刚回答了一个,直接给你,是作业吧?1.include "stdio.h"include "math.h"int main(){ int n,m,i,j,k,x;printf("输入区间上下限[m,n]:");scanf("%d %d",&m,&n);x=0;for(i=m;i<=n;i++){ k=0;for(j=2;j<=sqrt(i);j++){ if(i%j==0){ k=1;break;} } if(...

输出m到n之间的所有素数,m<100.n<1000 每两个数之间用空格分隔开。C语...
int main(){ int i,j,m,n,mark=1,k=0;scanf("%d %d",&m,&n);if(m>=100||n>=1000){ printf("Error!\\n");return 0'} for(i=m;i<=n;i++){ for(j=2;j

c语言 输入M N 输出M N之间所有素数 每行七个输出
include <stdio.h> int main(){ int i,n,m,j,k=0,t;scanf("%d%d",&n,&m);if(n<2)n=2;for(i=n;i<=m;i++){ for(j=2;j=i){printf("%6d",i);if(++k%7==0)printf("\\n");} } if(k==0)printf("none\\n");return 0;} ...

个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个。?
返回重新输入数值 for ( a=m;a<=n;a=a+1){ if (j%6==0) printf("\\n");k=sqrt(a);for (i=2;i<=k;i++)if (a%i==0)break;if (i>=k+1) {printf("d ",a);j=j+1;} } return 0;} 其中j的作用就是累计输出素数的个数,控制每行输出6个数据。

求m---n之间的所有素数
计算质数玩玩 def prim(startNum, maxCnt):prim_list = Prime over = False print(f"Start number : {startNum} " )n1 = startNum count = 0 if n1 < 2: n1 = 2 #质数从2开始 while not over:初始化 divFlag = False for a in prim_list.getList(prim_list):if a >= n1: ...

从键盘输入两个大于等于2的整数m和n,输出m和n之间所有素数,并计算...
def is_prime(m): """判断m是否素数""" for i in range(2,int(m**(1\/2))+1): if m % i == 0: return False else: return Truedef all_prime(m, n): """输出m和n之间所有素数""" primes = [] for i in range(m, n + 1): if is_pri...

C语言 输出m,n之间全部回文素数,5 <=am< n<= 100,000)我写的程序错在...
int x){ int i; if(x<=1) return 0; for(i=2; i<x; ++i) if(x%i==0) return 0; return 1;}int main(){ int m,n,x; scanf("%d%d",&m,&n); for(x=m; x<=n; x++) { if(isPrime(x) && HW(x)) printf("%d\\n",x); } return 0;} ...

用来输出两整数M和N之间的所有素数(质数).所谓一个整数n为素数,是指...
include<stdio.h> void main(){ int i, j, k, n, m, s = 0;printf("Please input two number N and M:\\n");scanf("%d %d", &n, &m);for(i = n; i < m; i++) { \/\/ for(i=n; __(1)__; i++) { for(j = 2; j < i; j++)if(i % j == 0...

揭西县19533856000: 输出区间[m,n]之间的素数帮忙啦··谢谢
紫星欣路: 给出相关的代码,不是全代码哈:首先编写一个函数判断一个整数是不是素数:bool fun_1(int x) { int i; bool bReturn; if(x<=1)bRturn=false; else { bReturn = true; //因为当x=2时,x是素数,无需进入循环,返回 true 就可以 for(i=2;i<x;i++) //这里不...

揭西县19533856000: c语言 输出从m到n的孪生素数对 -
紫星欣路: #include <stdio.h> #include <math.h>int prime(int n) { int i;if(n<2) return 0; for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0; return 1; }void main() { int i,m,n;printf("m:"); scanf("%d",&m); printf("n:"); scanf("%d",&n); for(i=m;i<=n-2;i++) if(prime(i) && prime(i+2)) printf("%d,%d\n",i,i+2); }

揭西县19533856000: 求助c语言:在main函数里键盘输入m、n,调用另一个子函数统计并打印出m至n之间的素数. 求高手解答……谢~ -
紫星欣路: #include <stdio.h>int sb(n) {int i; for (i = 2; i < n; i++)if (0 == n % i) return 0; return 1; }int main(void) {int m, n, i; printf("请输入m, n\n");scanf("%d%d", &m, &n); for (i = m; i <=n; i++)if (sb(i)) printf("%d 是素数\n", i); return 0; }...

揭西县19533856000: C语言编程 输出m到n之间的素数 要求定义函数 请帮助我找出错误 -
紫星欣路: #include <stdio.h> #include <math.h> int prime (int n) { 5261int t,i,J=1;/*把J的初始值改了,如果J=1是素数*/t=(int)sqrt(n);for(i=2;i<=t;i++)/*改成了i<=t,我觉得要4102是不改对平方数的判断会出错*/{1653if(n%i==0){J=0;/*判别条件也改了...

揭西县19533856000: c语言 输出[m,n]之间素数 的程序 -
紫星欣路: (先建立一个含有2~up之间所有自然数的数表,在数表中删去2的倍数(不包括2);然后找2后面第一个被保留的数p(是3),再删除p的倍数(不包括p);然后再找下一个被保留的数(是5),继续上述步骤:这样继续下去,直至P大于sqrt(up...

揭西县19533856000: C语言:输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个 -
紫星欣路: if(flag==1&&n!=1) 这里错了你少了=

揭西县19533856000: c语言输入两个正整数m和n,求出[m,n]区间的所有素数 -
紫星欣路: for(j=2;j<=i;j++) { if(i%j==0) break; } if(j==i) { a[x]=i; x++; } 这段代码,你不感觉无论是哪一个数,都会被记录下来,最后输出吗?后面改成if(j!=i)//保证不是因为除以自身而跳出上面寻个循环的 { a[x]=i; x++; }

揭西县19533856000: C++编程 输入m和n,输出m到n间的所有素数 -
紫星欣路: #include <iostream> using namespace std;bool isPrime(int n){for (int i=2; i<n; i++){if (n%i==0)return false;}return true; }int main(){int m,n;cin>>m>>n;for (int i=m; i<=n; i++){if (isPrime(i)){cout<<i<<endl;}}return 0; }

揭西县19533856000: C语言m~n之间的素数 -
紫星欣路: 你写的程序思路非常混乱 用循环就可以. #include <stdio.h> #include<math.h> void main() { int m,n,i; int isPrime(int); scanf("%d %d",&m,&n); for(i=m;i<=n;i++) if(isPrime(i)) printf("%d ",i); } int isPrime(int x) //这个才是判断是否素数的函数,是返回1,不是返回0 { int i,flag=1; for(i=2;i<=sqrt(x);i++) if(x%i==0) { flag=0; break; } return flag; }

揭西县19533856000: 求C语言纠错 判断从m到n中间的素数并输出 -
紫星欣路: #includeint main() { int m,n,t,i,k=0; printf("Input m: "); scanf("%d",&m); printf("Input n: "); scanf("%d",&n); for(i=m;i{ for(t=2;t if(i%t==0)break; if(t>=i) //不能放在else 里面,要放在遍历完一个for,判定是否是素数,是就打印 {printf("%4d",i); k=k+1; if(k%6==0) printf("\n"); } } return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网