C语言求助,《求m和n之间的所有素数》

作者&投稿:邰骆 (若有异议请与网页底部的电邮联系)
C语言:求所有素数:输入两个正整数m、n,求m~n之间的所有素数。(不用数组)程序代码 流程图~

这里不支持编辑器,发了代码也很乱。只能给你个思路。
首先,获取到m,n,比较下两者大小(假设m大n小)。
然后使用for循环,从n开始自增到m,存储到一个数组里面(如果你不使用数组,那可以把下面的方法放入for循环执行)。
得到每一个值,使用判断条件“n%2==0”/“n%2==1”(把n对2求余,得到0就是偶数,得到1就是奇数。)
这样你就取到你要的值了。

#include #include "math.h"int main(int argc, char *argv[]) { int a,b,i,j; int find=0; while(1) { printf("请输入两个数: "); scanf("%d %d",&a,&b); if(a>b || a<2) { printf("
输入时第一个数应该小于第二个数 并且 第一个数不小于2

按回车重新输入"); getchar(); getchar(); system("cls"); } else { break; } } for(i=a;i<=b;i++) { find=1; for(j=2;j<=sqrt(i);j++) { if(i%j==0) { find=0; continue; } } if(find==1) { printf("
质数: %d",i); } } return 0;}

你的第二层for循环后面好像缺失一个“{”;要注意代码格式,你这个代码格式读起来很痛苦哦

思路应该是:第一层for循环是循环m到n之间,{第二层for循环判断这个数是不是素数,是的话就输出;然后再判断这一行有没有6个了,有6个就输出一个换行}

因为每次不是质数的时候你还是判断是不是c是6的倍数,这个应该放在C++后面


C语言求助,《求m和n之间的所有素数》
思路应该是:第一层for循环是循环m到n之间,{第二层for循环判断这个数是不是素数,是的话就输出;然后再判断这一行有没有6个了,有6个就输出一个换行}

用自然语言求解两个数m和n 的最大公约数
要求出m和n的最大公约数,需要把m和n分析质因数。把m分解成若干个质数相乘,再把n分解成若干个质数相乘,找出两组质因数相同的数,把这些数相乘,所得之积就是m和n的最大公约数。

C语言求m个数的和的问题...
你究竟是用整数还是浮点数,类型没有统一,你求和的变量没有初始化,也不需要使用指针。我全部统一为整数,修改如下:include<stdlib.h> include<stdio.h> void main(){ int i,p,m,sum=0;scanf("%d",&m);for(i=0;i<m;i++){ scanf("%d",&p); sum+=p; } printf("The result is ...

C语言问题求m个数的和...
int *p,m;scanf("%d",&m);p=(int*)malloc(m*sizeof(int));指针p指向的空间 既是你要的数组 与正常定义的数组用法相同

求两个数m和n的最大公约数c语言
关于求两个数m和n的最大公约数c语言回答如下:1.C语言介绍 C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,...

c语言,求两个数m和n的最大公约数的流程图。
1、判断m能否被n整除,如果能,则最大公约数就是n。2、k=m-n。比较n和k,假设n大,k小。m=n; n=k; 重复第1步骤。直到m能被n整除为止。include "stdio.h" \/\/包含头文件 main(){ int m,n,i,min; \/\/定义变量 printf("Please Input n and m:\\n"); \/\/打印这句话 scanf("%d%d"...

用C语言编程,求两个数m和n的最大公约数!(将步骤说明下谢谢)
for(i=min;;i--) \/\/从最小值起循环,每次减一 if(n%i==0&&m%i==0) \/\/当循环到某一值的时候,n和m都能被i整除,即i为最小公约数 break; \/\/当i为最大公约数时,退出循环 printf("common divisor: %d\\n",i); \/\/打印最大公约数 } 顺便说下,当知道最大公约数时,最小...

求m和n的最大公约数。用自然语言、传统流程图和N-S图表示求解的算法...
C语言是Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。希望帮到你吧。如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

C语言编程 求和(从m到n的和)
include <stdio.h>void main(void){int n,m,i,sum=0;printf("输入n和m的值:");scanf("%d %d",&n,&m);for(i=n;i<=m;i++){sum = sum + i;}printf("sum=%d\\n",sum);return;}

补充C语言程序:求两个整数m和n的最大公约数,把它存在变量t中
变量t存放 最大公约数 前两天才给他们写的 if(m<n){ if(n%m==0) t=m; \/\/整除 else { for(i=m\/2;i>=1;i--) { if(n%i==0&&m%i==0) {t=i;break;} } } } else \/\/m>=n时 { if(m%n==0) t=n;else { for(i=n\/2;i>=1;i--){if(m%i==0...

贵州省18721358253: 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++; }

贵州省18721358253: C语言 整数M和N区间内素数的个数并对它们求和. -
丙豪恒迈: #include<stdio.h> #include<math.h>int is_prime(int u) {if(u == 0 || u == 1)return 0;if(u == 2)return 1;if(u%2 == 0)return 0;for(int i=3;i <= sqrt((float)u);i+=2)if(u%i == 0)return 0;return 1; }int main() {int total=0,sum=0;int M,N;scanf("%d%...

贵州省18721358253: 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!

贵州省18721358253: c语言 输入两个正整数m和n,求出[m,n]区间的所有素数 -
丙豪恒迈: for(j=2;j

贵州省18721358253: 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; }

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

贵州省18721358253: C语言 求n~m间的所有素数. -
丙豪恒迈: #include int isprime(int n) { int i=1; if(n==1) return 0; for(i=2;i*i<=n;i++) if(n%i==0) return 0; return 1; } void main() { int i,n,m; scanf("%d%d",&n,&m); for(i=n;i<=m;i++) if(isprime(i)) printf("%d ",i); }

贵州省18721358253: C语言:求所有素数:输入两个正整数m、n,求m~n之间的所有素数.(不用数组)程序代码 流程图
丙豪恒迈: 这里不支持编辑器,发了代码也很乱.只能给你个思路. 首先,获取到m,n,比较下两者大小(假设m大n小).然后使用for循环,从n开始自增到m,存储到一个数组里面(如果你不使用数组,那可以把下面的方法放入for循环执行).得到每一个值,使用判断条件“n%2==0”/“n%2==1”(把n对2求余,得到0就是偶数,得到1就是奇数.)这样你就取到你要的值了.

贵州省18721358253: 求助一道大一C语言题 题目内容: 要求统计给定整数M和N区间内素数的个数,并对所有素数求和. -
丙豪恒迈: 你的素数判断有问题 你的m值一旦变为0就不会再变回1了,我的建议是你最好将素数判断作为一个函数 int prime(int n) {int i, flag = 1;if(n < 2)return 0;for(i = 2;i <=n/2;i++)if(n % i == 0) {flag = 0;break;}return flag; }这个函数的flag相当于你的m,你可以看到flag在每次判断的时候都是需要赋值为1的

贵州省18721358253: 【C语言编程】从键盘输入m,n: 在屏幕上按每行10个的格式输出m~n之间的全部素数 -
丙豪恒迈: #include <stdio.h> bool prime(int x) { int i,t=x/2; for(i=2;i<t;i++) if (x%i==0) return false; return true; } void main() { int m,n,l=0; scanf("%d%d",&m,&n); for(;m<=n;m++) { if (prime(m)) { printf("%d\t",m); l++; } if (l==10) { printf("\n"); l=0; } } }

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