用C语言如何判断素数 C语言中素数的判断方法

作者&投稿:睢庙 (若有异议请与网页底部的电邮联系)

按照如下步骤即可用C语言判断素数:

1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。

2、然后在弹出的新建对话框中点击C++Source File。

3、在新建的文件文本框中输入预处理命令和主函数,即函数头和空类型。

4、然后再定义变量并输入一个数字,即定义变量的数据类型,输出文字提示,再输入一个数字。

5、然后用for函数和if函数判断是否是素数。

6、点击确定后即可成功创建刚刚新建的程序,随机输入一个数字即可验证一下刚刚创建的C语言。



材料/工具:visual C++ 6.0

1、打开visual C++ 6.0-文件

2、点击新建-文件-C++ Source File

3、输入预处理命令和主函数:

#include<stdio.h>       /*函数头:输入输出头文件*/

void main()             /*空类型:主函数*/

4、定义变量并输入一个数字:

int m,i;                    /*定义变量的数据类型为整型*/

printf("输入一个数:");     /*输出文字提示*/

scanf("%d",&m);             /*输入一个数字*/

5、用for函数和if函数判断是否是素数:

for(i=2;i<=m;i++)           /*用for函数重复下面步骤*/

if(m%i==0)              /*判断输入的数是否能被除1和本身以外的数整除*/

break;

if(i>m)                 /*判断i是否大于m*/

printf("%d 是素数
",m);       /*输出是素数*/

else

printf("%d 不是素数
",m);     /*输出不是素数*/

6、完整的源代码:

#include<stdio.h>               /*函数头:输入输出头文件*/

void main()                     /*空类型:主函数*/

{

int m,i;                    /*定义变量的数据类型为整型*/

printf("输入一个数:");     /*输出文字提示*/

scanf("%d",&m);             /*输入一个数字*/

for(i=2;i<=m;i++)           /*用for函数重复下面步骤*/

if(m%i==0)              /*判断输入的数是否能被除1和本身以外的数整除*/

break;

if(i>m)                 /*判断i是否大于m*/

printf("%d 是素数
",m);       /*输出是素数*/

else

printf("%d 不是素数
",m);     /*输出不是素数*/

}



介绍三种使用C语言来判断素数的方法,以及用做素数表来判断找素数的方法。



判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。



所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数
另外判断方法还可以简化。m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果m不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。(原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m。例如16能被2,4,8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可)
#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>k)
printf("%d 是素数。\n",m);
else
printf("%d 不是素数。\n",m);
}

如何用c语言编程判断一个数是不是素数?~

方法一:
#include<stdio.h>
int main(){
int i,j;
printf("请输入一个正整数。\n");
scanf("%d",&i);
if(i<2)
printf("小于2,请重新输入。\n");
elseif(i%2==0)
printf("%d不是一个素数。\n",i);
else{
for(j=2;j<=i/2;j++){
if(i%j==0){
printf("%d不是一个素数。\n",i);
break;

if(j>i/2){
printf("%d是一个素数。\n",i);
break;




方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){
if(num%i==0){
a++;


if(a==0){
printf("YES\n");
}else{
printf("NO\n");



方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{
printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
}while(a!=0);

介绍三种使用C语言来判断素数的方法,以及用做素数表来判断找素数的方法。

c语言判断素数共有几种方法
答:判断素数的方法只有一种:检查从2到n之间有没有n的因数,如果没有,就是素数,如果有,就不是!但是,检查方法有多种,都是利用数的性质:最基本的,从2检查到n 折半法,从2检查到n/2+1 开方法,从2检查到 根号n x*y = n 则,其中必有一个小于根号n 数组法,从数组中依次去除2,3,...

判断一个数 是否为素数 用C语言while或for语句写 谢谢啦
答:int i;for(i=2;i*i<=M;i++)if(M%i==0)break;if(i>M)是素数 else 不是 while(i*i<=M)if(M%i==0)break;if(i>M)是素数 else 不是

用c语言编写一个程序,判断输入的数是否是素数(质数)。
答:include <stdio.h> include <math.h> int main(){ int i,j,n,flag;int num;/* 判断输入的数是否是素数 */ printf("请输入一个正整数:");scanf("%d", &num);for(i=2,flag=1; i<=(int)sqrt(num);i++){ if(num % i ==0){ flag=0;break;} } if(flag==1)printf("%d ...

判断素数的c语言程序是什么?
答:基本思想:把m作为被除数,将2—INT()作为除数,如果都除不尽,m就是素数,否则就不是。可用以下程序段实现:voidmain(){intm,i,k;printf("pleaseinputanumber:\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<k;i++)if(m%i==0)break;if(i>=k)printf("该数是素数");else printf(...

遇到一个C语言问题。输入一个整数,判断其是否为素数。
答:x/2 程序分析:1.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。2.nn能被mm整除,则m≤n2m≤n2,所以只需要穷举m∈[2,n2]m∈[2,n2]即可,若在穷举过程中出现了nn的情况则n是质数,若mm能自加到m=n2m=n2则n不是质数。include "stdio.h"void main(){ int i,x,y=...

...判断哪些是素数,并输出该素数。的C语言程序
答:2009-12-06 任意输入10个数,判断哪些是素数,并输出该素数。 1 2015-12-23 c语言程序设计题:1输入10个整数,2找出素数并且输出 2015-11-13 C语言程序 判断m-n之间的素数有几个、分别是哪些。m-n范... 2015-01-14 C语言编程问题:从键盘输入一个正整数,判断该数是否素数并输出... 4 更多...

c语言编写函数判断素数
答:/判断是不是素数 include<stdio.h> int prime(int a);//函数声明 int main(){ int n,i;scanf("%d",&n);if(prime(n)==1) //return返回值1 printf("prime");else printf("not prime") ;} int prime(int a){ int i;for(i=2;i...

C语言作业:使用子函数,判断一个数是不是素数,如果不是,输出其素数因子...
答:isPrime(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 n;scanf("%d",&n);if(n<=0){ printf("error");return 0;} if(isPrime(n))printf("没有因子,是素数");else{ printf("%d=",n);decompose(n);} } ...

C语言编程判断m是否为素数
答:4、随后需要使用for函数和if函数判断是否是素数,具体程序如下:for(i=2;i<=m;i++) /*用for函数重复下面步骤*/ if(m%i==0) /*判断输入的数是否能被除1和本身以外的数整除*/ break;if(i>m) /*判断i是否大于m*/ printf("%d 是素数\n",m); /*输出是素数*/ else printf...

用C语言,判断1-100之间有多少个素数,并输出所有素数。
答:可以使用筛法来判断 1-100 之间有多少个素数,并输出所有素数。筛法是一种通过枚举合数的因子来筛选出素数的方法。下面是用 C 语言实现的代码示例:include <stdio.h>#include <stdbool.h> define N 100 int main(void){ // 创建一个 bool 类型的数组,用来存储每个数是否为素数bool prime[N + ...