求m~n之间所有的素数。m和n的值由用户键入。为使程序结构清晰,设置一个函数 用来判断x是否为素数。

作者&投稿:离狡 (若有异议请与网页底部的电邮联系)
求m~n之间所有的素数。m和n的值由用户键入。为使程序结构清晰,设置一个函数 用来判断x是否为素数。~

#include
#include
#include
void prime(int b,int a)
{
int i,m,k,n=0;
printf("%d到%d中的所有素数为:
",b,a);
for(m=2;m<=a;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)//判断m是否为素数
{
break;
}
if(i>k)
{
printf("%d ",m);
n=n+1;
if(n%10==0)//每输出10个数换一次行
{
printf("
");
}
}
}
printf("
");
}
main()
{
int m,n,i=1;
printf("请输入m的值:");
scanf("%d",&m);
printf("请输入n的值:"); ");
scanf("%d",&n);
if(n>m)
{
i=1;
}
else
{
printf("对不起,您输入m的值大于n的值¡
");
i=0;
}
while(i)
{
prime(m,n);
i=0;
}
system("pause");
}

没什么问题
只是你注意输入中间有个逗号
还有,有些版本的IDE,sqrt函数的参数可能应该是浮点型,而且最好给main加上返回值类型

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void prime(int b,int a)
{
int i,m,k,n=0;
printf("%d到%d中的所有素数为:\n",b,a);
for(m=2;m<=a;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)//判断m是否为素数
{
break;
}
if(i>k)
{
printf("%d ",m);
n=n+1;
if(n%10==0)//每输出10个数换一次行
{
printf("\n");
}
}
}
printf("\n");
}
main()
{
int m,n,i=1;
printf("请输入m的值:");
scanf("%d",&m);
printf("请输入n的值:"); ");
scanf("%d",&n);
if(n>m)
{
i=1;
}
else
{
printf("对不起,您输入m的值大于n的值¡\n");
i=0;
}
while(i)
{
prime(m,n);
i=0;
}
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
int i,m,n;
int prime(int x)
{
int i=1;
if(x==1)
return 0;
for(i=2;i*i<=x;i++)
if(x%i==0)
return 0;
return 1;
}
main()
{
printf("\nPLEASE ENTER m AND n:\n");
scanf("%d,%d",&m,&n);
for(i=m;i<=n;i++)
if(prime(i))
printf(" %d",i);
printf("\n");
system("pause");
}

# include <stdio.h>
int prime(int x)
{
int j,flag=1;
if(x==1||x==2)
flag=1;
for(j=2;j<x;j++)
{
if(x%j==0)
flag=0;
}
return (flag);
}

void main()
{
int prime(int x);
int m,n,i;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
if(prime(i))
printf("%3d,",i);
}
}


编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的...
你可以先把所有的素数放在一个int a[]数组里,然后再打印,这样就可以知道什么时候是最后一个数 不然这样直接打印的话,想要去掉最后的空格,必须每次都判断下接下来有没有素数,很麻烦的哈,而且很浪费资源和时间 而且你prime(int n)函数里应该是if(n<2) return 0;而不是小于3哈 ...

输出m到n之间的素数
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

C语言 输出n到m之间的所有素数
对n到m之间所有数进行遍历,逐一判断是否为素数,如果是则输出。一、算法设计:1、输入n和m;2、判断n和m关系,如n>m则交换;3、遍历n到m所有值,对于每个值判断是否为素数,如是则输出;二、参考代码:include <stdio.h>#include <math.h>int isPrime(int n)\/\/判断素数函数。{ int i; ...

用C++输出两个正整数[m,n]之间所有的素数,每行输出5个数
以下程序满足你的要求,在tc2.0下已调试通过:include "stdio.h"include "stdlib.h"include "math.h"main(){ int i,j,m,n,k,h=0,leap=1;loop:printf("\\nPlease input two numbers m and n:(m>1,n>m)\\n");scanf("%d%d",&m,&n);if(m<=1||n<=m){ printf("Input error!

求m和n之间的所有素数
main() { int m=0,n=0,i,l=0; do { printf("Input m:"); scanf("%d",&m); printf("Input n:"); scanf("%d",&n); } while ((m<1 || n>500) || m>n); for (i=m;i<=n;i++) { if (...

输出m和n之间的所有素数,每行输出6个
include "stdio.h"int prime(int n){\/\/Judgeint i;if(n>2 && !(n&1) || n<2)return 0;for(i=3;i*i<=n;i+=2)if(!(n%i))return 0;return 1;}int main(int argc,char *argv[]){int m,n,k;printf("Please enter m & n(int 0<m<n)...\\n");if(scanf("%d%d",&...

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;} ...

求高手用c语言编程,输出[m,n]间的所有素数,并且每5个换行,如果区间内不...
程序源代码:include<stdio.h> include<math.h> void main(){ int i,k,m,n;int count=0;printf("请输入求素数的上区间m的值:");scanf("%d",&m);printf("请输入求素数的下区间n的值:");scanf("%d",&n);for(i=m;i<=n;i++){ if(i==1)continue;int flag=1;for(k=2;k...

java程序 求{m,n}之间,素数要求txt文档输出,并文档内显示每五个数字换行...
import java.io.*;public class PrimeTest { \/\/指定m和n的值 static final int m = 0; static final int n = 100; \/\/指定输出的文件路径 static final String OUT_FILE_PATH = "c:\\\\primes.txt"; public static void main(String[] args) { \/\/首先得到m到n之间质数的字符串 String...

用c++语言编一个 能在m~n范围内求出素数的个数 的程序 例如输入2 5...
下面的程序已经给你修改正确了:include <stdio.h> void main ( ){ int m,n,i,j,k;scanf("%d %d",&m,&n);for(i=m;i<=n;i++){ if(i==2) { \/\/如果是2, 直接输出。printf( "%d ", i);continue;} for(j=2;j<i;j++) \/\/应该是j...

西乡县15932111027: 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++; }

西乡县15932111027: c语言 输入两个正整数m和n,求出[m,n]区间的所有素数 -
栋劳头孢: for(j=2;j

西乡县15932111027: 求m~n之间所有的素数.m和n的值由用户键入.为使程序结构清晰,设置一个函数 用来判断x是否为素数. -
栋劳头孢: 用递归只要一个prime(int m,int n)函数就可以把判断和输出一下搞定,简约 #include <stdio.h> #include <stdlib.h> void prime(int m,int n) { int i; if(n==m) return; else for(i=2;i<n;i++){ if(n%i==0) break; if(i>=n-1) printf("%d\n",n); } prime(m,n-1); } main(){ int a,b; printf("输入开始和结束数:"); scanf("%d%d",&a,&b); prime(a,b); system("pause"); }

西乡县15932111027: 输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,我写的运行错误,帮我改下 -
栋劳头孢: 不好意思,这几天比较忙,现在才看到你的求助. 这个程序我建议你不要去用函数求,那样太麻烦了.楼上的这位写的一看就知道没有编译过,算法都错了. 这是我写的,已经编译通过,简明易懂,希望对你有帮助. #include<stdio.h> #...

西乡县15932111027: C语言:《求m~n间的所有素数》 -
栋劳头孢: 把for(k=m;k<=x;k++)改成for(k=2;k<=x;k++). 把if(k>x){改成if(k>x && i>1){.或者这里不改,在scanf("%d",&m);后加一句if(m==1) m++;就OK!

西乡县15932111027: 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; }

西乡县15932111027: 找出两个正整数m和n之间所有的绝对素数(m和n在1000以内)找出两个正整数m和n之间所有的绝对素数(要求每行打印5个)并最后求它们之和,绝对素数... -
栋劳头孢:[答案] #include int prime(int n) { int i; if(n

西乡县15932111027: c语言 调用函数求m与n之间素数的个数 -
栋劳头孢: int prime(int a) 里面 if(a>(n-m)/2) return 0; 改成 if(i>(n-m)/2) return 0; 其实判断素数可以有更好的算法,不过按照楼主思路 最简单的改法就这样了 如果想优化再追问

西乡县15932111027: c++ 求输入m和n,输出m到n间的所有素数. -
栋劳头孢: #include<iostream> using namespace std; int main(){ int i,j,m,n; cin>>m>>n; //假定m<=n 且m>1 因为1既不是素数也不是合数for(i=m;i<=n;i++){ for(j=2;j<=i/2;j++) if(i%j == 0) break; if(j>i/2) cout<<i<<endl; } //return 1; system("pause"); }

西乡县15932111027: 输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数is - prime(x)来判断x是否 -
栋劳头孢: 在VS2010上测试通过:#include <iostream> using namespace std; bool is_prime(int x) { int tmp = x/2; for (int i = 2; i<=tmp; i++) { if (x%i == 0) return false; } return true; } int main() { int m, n; int sum = 0; cout << "请输入两个正整数m,n(m<n):" << ...

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