输入一个自然数m,判断m是否为素数?

作者&投稿:田菊 (若有异议请与网页底部的电邮联系)
输入一个正整数m,判断它是否为素数。为什么i<=m/2,m/2是什么意思?~

m/2是取整,比如m=1时,1/2就是0;m=2时,2/2就是1;3/2=1;4/2=2...
另外还有一个m%2.念m“摩”2,是取余数的意思。如1%2,结果是1;2%2,结果是0;3%2=1.
判断m是否是素数,只要判断i从小到大是否都不能把m整除就行了。
for(i=2;i<=m/2;i++)//之所以m/2,是为了减少计算,你也可以写成m。
if(m%i==0)//当可以整除的时候,跳出循环。这时跳出,就已经证明m(如果m!=1的话)不是素数了。 //除非是因为i==m/2时跳出,m才可能是素数。
break;
if(i>m/2&&m!=1)//跳出循环后,判断,此时的m若不是1,则m就是素数,i>m/2是为了判断i是否==m/2,当然,写“>”会比较好。
printf("%d is a prime number!
",m);
else
printf("No!
");

您好,您这样:
int i, m;
scanf("%d",&m);
i=2;
while(i<=m-1)
{
if(m%i==0) break;

i++;
}
if(i==m)
printf("是素数");
else
printf("不是素数");

/*
由于第二步是一个循环判断,所以光写第二步有点突兀,所以我把代码给出了。
功能:输入一个自然数m,判断m是否为素数
**************C语言实现**************
*/
#include <stdio.h>
#include <math.h>

int main(void)
{
int m;
do {
printf("Enter a positive integer: ");
scanf("%d", &m);
}while (m <= 0);

int stop = (int)sqrt(m) + 1;
int i;
for (i = 2; i <= stop; ++i)
{
if (m % i == 0) break;
}

if (i == stop + 1)
printf("\n%d is a prime.\n", m);
else
printf("\n%d is not a prime.\n", m);

return 0;
}
/*
按照题目的意思,第二步就写:
if: m % x == 0
意思是说,如果m对x求余等于0的话表示m不可能是素数,然后输出x,表示m不是素数,否则的话将x增1,进行下一次判断,直到输出m本身,也就是x增加到m的时候。
*/

main()

{ int m;
int i,f;
f=0;
scanf("%d",&m);

for(i=2;i<m;i++)
if(m%i==0) { f=1; break;}
else {f=0; continue;}

if(f) printf("no\n");
else printf("yes\n");

}

for(j=1;j<=m/2;j++)
if(i%j==0) break;
if(j>m/2) return 1;//m是素数
else return 0;//m不是素数


VC++ 判断一个自然数是否为升序数
int n,m=1,x=-1,p;cin >> n;for (int i=1;i>=0;i++){ p=(n\/m)%10;if (p>x){ x=p;m*=10;} else { cout << "不是升序数"<<endl;break;} if (n<m){ cout << "是升序数"<< endl;break;} } return 0;} ...

输入一个正整数m,判断它是否为素数。为什么i<=m\/2,m\/2是什么意思?
m\/2是取整,比如m=1时,1\/2就是0;m=2时,2\/2就是1;3\/2=1;4\/2=2...另外还有一个m%2.念m“摩”2,是取余数的意思。如1%2,结果是1;2%2,结果是0;3%2=1.判断m是否是素数,只要判断i从小到大是否都不能把m整除就行了。for(i=2;i<=m\/2;i++)\/\/之所以m\/2,是为了减少...

对任意的自然数m,证明:必有m的某个倍数,它包含0到9中的所有数字
考虑123456789,123456789123456789,.1.9(m+1个123456789).这些数除以m的余数为0到m-1中的一个 根据抽屉原理至少有两个数除以m的余数相等,两数之差为m的倍数,而且包含0到9中的所有数字.

任意输入一个自然数(设不超过三位),判断是否自守数并输出
int j\/\/计算输入的数是几位的.string v_i=(string)i;(写法不一定对,只是表达意思)int result =i*i;\/\/计算 String v_result = \/\/获取result从个位到第j位的数字 if(判断)输出.当然可能有的方法不需要如此复杂,不过我目前水平就如此了.代码我就不完全贴出来了,程序主要要自己写,哪怕是一个...

怎样用流程图表示某一整数是否为素数
NEXT K70 PRINT I,80 NEXT I90 END程序中使用了GOTO无条件转移语句,破坏了程序的结构。寻找另一思路:判断一个自然数M是不是素数,可用2、3、4……去除M,如果这些数都不能整除M,则M是素数。用结构化流程图N-S图描述该算法。INPUT NFOR M=1 TO N STEP 2 K=INT(SQR(...

...判断其是否为素数。素数是指在一个大于1的自然数中,除了1和此整数...
你这个f()函数第一次执行for语句i=2 之后就退出了f函数```应该改成如下定义:int f(int x){ for(int i=2;i<=(int)sqrt(x);i++){ if(x%i==0)return 0;} return 1;}

输入一个自然数,判断是否为质数(即能被1和它本身整除的数)
判断一个数n是否为素数,只需要判断其是否能被2到sqrt(n)之间的整数整除即可,因此该空应该填写0,即一旦整除之后跳出循环,并进行下一步判断 当然,如果您想调用sqrt函数的话应该事先加载math.h这个头文件 include "stdio.h"#include "math.h"main(){int a,k,m;scanf("%d",&a);k=sqrt(a)...

读入自然数m和n(0<=m<=n<=1000),判断分数m\/n式有限小数还是循环小数...
public static void main(String[] args) { int m;int n;int yushu;int xunhuanwei;int zhi;for (n = 1; n <= 1000; n++) { for (m = 1; m < n; m++) { System.out.print(m+"\/"+n+"=0.");List<Integer> list = new ArrayList<Integer>();yushu = m;xunhuanwei = 0...

编程输入一个自然数,求其最大因子
这很简单啊,一个数的最大因子,就是其本身。如果除去这个数不算,第2大的就是\/2,余数为0 否则除以3,余数为0。简单判断一下就出来了。include <stdio.h>int main() { long n, m; int i; printf("输入一个自然数:"); scanf("%d", &n); for (i=2;i<=n\/2;i++) { ...

1、输入一个自然数,判断它是奇数或是偶数并输出。
对于第一题:if(n%2==1)则为奇数 否则为偶数 if(n%2==0)则为偶数 否则为奇数 printf("d%",n);第二题 0.5+0.5*0.5+……+0.5的10方 0.5的10方

怒江傈僳族自治州19391092051: 输入一个自然数m,判断m是否为素数? -
酉厚曲克: 你这个f()函数第一次执行for语句i=2 之后就退出了f函数```` 应该改成如下定义: int f(int x) { for(int i=2;i<=(int)sqrt(x);i++) {if(x%i==0)return 0;} return 1; }

怒江傈僳族自治州19391092051: 判断一个整数m是否是素数 -
酉厚曲克:[答案] 如果 m>1 且 m 只能被 1 和 m 自己整除,m 就是素数&& VFPm = 17m,aaa(m)m = 18m,aaa(m)proc aaa(m) && 判断素数的函数x = 1for i = 2 to m-1if m % i = 0x=0exitendifendforif x=1return " 是素数"elsereturn " 不是...

怒江傈僳族自治州19391092051: 如何用C++编程,输入一个整数m,判断其是否为素数. -
酉厚曲克: 思路:定义一个函数,传入参数n,从2到n-1依次递增整除n如果能整除返回0,表示n不是素数,否则返回1,表示n是素数. 参考代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21#include <iostream> usingnamespacestd; intfun(intn...

怒江傈僳族自治州19391092051: 判断正整数m是否为素数 -
酉厚曲克: 不行.按照你的算法,比如输入25,首先 for 循环 i 会从 2 开始,25 不能被 2 整除,因此打印“25 is a prime number”,然而 25 并不是一个素数.另外,循环结束的条件建议设为 i #include #include int main(void) { int i, m; printf("Enter a ...

怒江傈僳族自治州19391092051: 编辑一个C语言程序 判断数m是否为素数(只能被1和它本身整除的整数)? -
酉厚曲克: 1、首先打开visual C++软件,按下快捷键Crtl+N新建任务,弹出窗口用鼠标左键点击文件,选择C++ source file:2、接下来就编写主程序,素数是只能被1和自己整除的数,因此判断一个整数m是否为素数,只需被 2 ~ 根号m之间的每一个整数去除就可以了.如果 m 不能被 2 ~ 根号m 间任一整数整除,m 必定是素数. 所以这里要先去用sqrt求q的更好,在用for循环计算每一个数: 3、程序编完后,就可以查看结果了,这里输入17,程序判断17是素数,在多输入几个数进行判断,发现程序可以完美的运行:

怒江傈僳族自治州19391092051: 用C语言编程判断用户输入的m是否素数
酉厚曲克: #include <stdio.h> #include <math.h> int isprime(int n) /*函数用来判断素数,是素数就返回1,不是返回0*/ { int i,k=sqrt(n); for(i=2;i<=k;i++) { if(n%i==0) break; } if(i>k) return 1; return 0; } void main() { int m; scanf("%d",&m); /*输入一个数*/ if(isprime...

怒江傈僳族自治州19391092051: 判断是否为素数:输入一个正整数m,判断其是否为素数.【C语言编程,不用数组】 -
酉厚曲克: 最简单的思路,就是从2开始逐个判断能否整除,如果存在本身以外因子,就不是质数,否则是质数.代码:int is_prime(int n) { int i; for(i = 2; iif(n%i == 0) return 0; return 1; } int main() { int n; scanf("%d",&n); if(is_prime(n)) printf("%d 是质数\n", n); else printf("%d 不是质数\n", n); }

怒江傈僳族自治州19391092051: 用C语言如何判断素数 -
酉厚曲克:[答案] 所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除.因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数 另外判断方法...

怒江傈僳族自治州19391092051: 如何编写一个C语言程序判断一个数是否是素数? -
酉厚曲克: 1. 思路1: 判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数.代码如下: #include <stdio.h> int main(){ int a=0; // 素数的个数 int num=0; // 输入的整数 printf("输入一个整数...

怒江傈僳族自治州19391092051: 用C语言编写判断输入的某个数m是否为素数 -
酉厚曲克: //判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是不是素数! #include #includemain() { int m,leap=1,h=0,k,i; for(m=101;m<=200;m++) { k=(int)sqrt(m+1); for(i=2;i

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