看看我这个求素数的C语言程序。
#include
int main()
{
int a=0;
int num=0;
int i;
printf("输入一个整数:");
scanf("%d",&num);
for(i=2;i<num;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("%d是素数。
", num);
}else{
printf("%d不是素数。
", num);
}
return 0;
}
扩展资料:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
基本算法:若 k%m==0 则说明 k 不是素数。
判断整数n是否为素数——采用枚举法求解。
采用枚举算法解题的基本思路:
(1)确定枚举对象、枚举范围和判定条件;
(2)枚举可能的解,验证是否是问题的解。
枚举算法的一般结构:while循环。
参考资料来源:百度百科-枚举法
先让我明确一下你的问题,你很纠结为什么“if ( IsPrime(m) )” 不写成不用“if ( IsPrime(m) == ture )”。是把?
是这样的,你所说的那个写法是最标准的,但是为了方便一般,会写成程序里面的那样。从变异的原理上来讲,是没有错的。因为IsPrime(m)的返回值,是bool型的,结果只有1(对应true)和0(对应false),当你所说的IsPrime(m) == ture时候,就相当于IsPrime(m)运行后,返回了1给if语句,而当if()的括号中的值,不是0的时候,就会执行if()下面的“printf("Yes!
");” 语句了;反之,如果IsPrime(m) == false时候,if()的括号中的值就是0,这样就执行“IsPrime(m) == ture”语句了。
至于你一定要问,既然这两种都可以,那么为什么这么写,而不是你说的那么写?我只能说这是个人的习惯问题。如果你一定要按你那么写,也是没有错的。只是习惯问题,没必要太钻牛角尖,接受就好了。愿意用,就用;不愿意用,就按自己的来。
希望能帮助到你。还有什么问题,欢迎追问。
从int i = 2,r; 这里开始,把你的while循环替换成下边的语句
while(i<=n/2)
{
r=n%i;
if(r==0)
{
printf("%d不是素数",n);
return;
}
i++;
}
printf("%d是素数",n);
这样就行了。
把while循环中printf里的n换成i
谁帮我看一下这个c程序,关于素数的。
你的代码本身是错误的,所以,必须修正。首先i>k是不可能的(你在for循环语句中已经标注小于或等于k了)。其实,你没有个标注此数是素数的状态值。所以修改了一下,让你在输入负数时提醒你输错了(没有验证,因为没有相关开发工具)include<stdio.h> include<math.h> void main(){ int m,i,k;...
看图,求素数的c语言程序。图中的程序只算出了a等于100时的情况,然后...
int n)\/\/求m~n之间的所有素数{int i,j,k,temp;if(m>n)\/\/如果m>n,则交换m,n的值{temp=m; m=n; m=temp;}for(i=m;i<n;i++){k=(int)sqrt(i);for(j=2;j<=k;j++)if(i%j==0)break;
求C语言中 判断素数的 代码!!!
基本思想:把m作为被除数,将2—INT( )作为除数,如果都除不尽,m就是素数,否则就不是。可用以下程序段实现:void main(){ int m,i,k;printf("please input a number:\\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<k;i++)if(m%i==0) break;if(i>=k)printf("该数是素数");...
c语言求100以内的所有素数
C语言求100以内的素数编程的思路和方法如下:1、首先需要定义两个整型的游标变量,用于后续的循环操作。这里定义两个变量为i,j。2、接着适用for循环来分别计算100以内的数。其中游标适用i变量。(因为第一个素数是3,所以循环变量游标从数字3开始)3、接着在第一个for循环的开头添加布尔变量tag,这个用...
用C语言求解1-100之间的所有素数。
Action(){ int i,j;int sum=0;int flag;\/\/是否为素数 for(i=2;i<=100;i++){ flag=1;for(j=2;j<=i-1;j++){ if(i%j==0){ flag=0;break;} } if(flag==1){ sum+=i;} } lr_output_message("sum=%d",sum);return 0;} 输出的结果:sum=1060 ...
求素数的C语言程序!
C语言-寻找素数 附代码:#include<stdio.h>#include<math.h>int main()\/\/原理:设ab=c,a<b,则有a<根号c<b。若设a恒小于根号c,则只需判断a是否为因数{int a, b;printf("请按从小到大输入两个素数:");scanf_s("%d %d", &a, &b);int n = 0,m=0,sum = 0;double i, j...
c语言怎么求素数?
除2以外,素数皆为奇数,所以对2单独处理,从3开始,将100以内的奇数逐一进行素数考察,是则输出,不是则跳过。另设一计数变量控制换行,每输出5个素数添加一个回车。代码如下:include "stdio.h"int main(int argc,char *argv[]){ int i,n,t;pr include include main(){ int a,i,flag,count...
c语言程序设计 求1到20的素数
以下是求1到20的素数的C语言程序:```c include <stdio.h> int main() { int i, j, flag;printf("1-20的素数有:");for (i = 2; i <= 20; i++) { flag = 0;for (j = 2; j <= i\/2; j++) { if (i%j == 0) { flag = 1;break;} } if (flag == 0 && i...
C语言求100以内素数的问题
printf("%d ",i);} } printf("\\ncount=%d\\n",count);return 0;} 解题思路:素数,就是除了1和他本身,不能被其他数整除的数字。答案就是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。
c语言求素数的算法
int main(){ int i, n;scanf("%d", &n);for (i = 2; i < n ; i++){ if (n%i == 0)break;} if (i < n) printf("This is not a prime.");else printf("This is a prime.");return 0;} 设计二:判断n是否能被2~√n间的整数整除,不能整除为素数 include<stdio.h>...
夫查盐酸: #include <stdio.h> #include <math.h> int f(int n) //起到判断大于1的正整数是否为素数的作用,返回一个值以标识,是则返回1,否则返回0. { int i; for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0; return 1; } int main() { printf("100至300之间的...
耀州区18982864777: 帮我看一下C语言判断素数的程序 - ?
夫查盐酸: #include "stdafx.h"#include "math.h" int main() {int n,i; printf("请输入一个数"); scanf("%d",&n); if((n==2)) printf("%d是素数",n); else { for(i=2;i<=sqrt(n);i++) { if(n%i==0){ printf("%d不是素数",n); break; } } if(i>=sqrt(n) printf("%d是素数",n); } return 0; }
耀州区18982864777: 急求用C语言编写素数展示的程序 - ?
夫查盐酸: //任何一个大于等于4的偶数,都可以用两个素数之和表示.#include<math.h> int su(long m) {int t=1;long i;for(i=2;i<=sqrt(m);i++)if(m%i==0){t=0;break;}return t;}//判断是否为素数函数#include<stdio.h> #include<stdlib.h> int main() {int flagp,...
耀州区18982864777: 求素数的c语言程序 - ?
夫查盐酸: #include<stdio.h>#include<math.h> void main() { int m, k, i, n=0; for(m=1; m <= 200; m=m+2) { k = sqrt(m); for(i=2; i <= k; i++) if(m % i == 0) break; if(i >= k + 1) { printf("%5d",m); n = n + 1; } } } 素数的定义:一个大于1的自然数,如果除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数 你写的这个只是求在2至a/2的范围内能被b整除的数,关键在于你还没理解清楚素数这个概念
耀州区18982864777: 请教一道关于求素数的C语言程序?
夫查盐酸: 你自己弄个数字测试一下就知道了 首先说这个算法的原理:求任意一个正整数m是否是素数 如果m能依次除以整数i(2<i<m,i依次取2到m-1)余数都不为0则为素数.事实上i只需取2到 sqrt (m),即2<=i<= sqrt (m) 现在我们举例说明为什么出...
耀州区18982864777: c语言求素数 - ?
夫查盐酸: 【例】判断m是否素数.N-S流程图:#include<math.h> main() { int m,i,k; scanf(“%d”,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) printf(“%d is a prime number\n”,m); else printf(“%d is not a prime number\n”,m); } 【例】求...
耀州区18982864777: c程序求素数 - ?
夫查盐酸: #include int f(int n) //起到判断大于1的正整数是否为素数的作用,返回一个值以标识,是则返回1,否则返回0.{ int i; for(i=2;i if(n%i==0) return 0; return 1; } int main() { printf("100至300之间的素数从小到大分别为:\n"); int i,k=0; for(i=100;i if(f(i)) { k++; printf("%d\t",i); //符号“\t”的作用是横向制表.} printf("\n总共%d个.\n",k ); return 0; }
耀州区18982864777: 看一段C求素数的代码?
夫查盐酸: #include"stdio.h" #include"math.h" main(){ int i,a; for(i=101;i<=200;i++) { flag=1; for(a=2;a<=sqrt(i);a++) {if(i%a==0){flag=0;break;} } if(flag==1)printf("%d ",i); } } //每次都要重置flag.
耀州区18982864777: 求素数的c语言 - ?
夫查盐酸: #includeint main() { int a,b; scanf("%d",&a); if(a<2) printf("no"); else { for(b=2;b if(a%b==0) { printf("no"); break;// } if(b==a)// printf("yes%d",a); } return 0; }
耀州区18982864777: C语言求1~1000素数的简单程序 - ?
夫查盐酸: #include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h> void fun(int m,int *k,int xx[]) { int i,j,n=0,t; for(i=100;i<m;i++) { t=1; for(j=2;j<i;j++) if(i%j==0) { t=0; break; } if(t==1) xx[n++]=i; } *k=n; } void main() { int m,n,zz[100]; system("CLS...