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

作者&投稿:驷旺 (若有异议请与网页底部的电邮联系)
如何用c语言写出判断一个数是不是素数~

判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。思路1)的代码:
#include
int main(){
int a=0; // 素数的个数
int num=0; // 输入的整数
printf("输入一个整数:");
scanf("%d",&num);
for(int i=2;i<num;i++){if(num%i==0){a++; // 素数个数加1}}
if(a==0){printf("%d是素数。
", num);}else{printf("%d不是素数。
", num);}return 0;}
判断方法还可以简化。m不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。思路2)的代码:
#include
#include
void main(){int m; // 输入的整数
int i; // 循环次数
int k; // m 的平方根
printf("输入一个整数:");
scanf("%d",&m);
// 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
if(m%i==0)
break;
// 如果完成所有循环,那么m为素数
// 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k
if(i>k)
printf("%d是素数。
",m);
else
printf("%d不是素数。
",m);
return 0;}

方法一:
#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);

判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。思路1)的代码:

#include <stdio.h>

int main(){

int a=0; // 素数的个数

int num=0; // 输入的整数

printf("输入一个整数:");

scanf("%d",&num);

for(int i=2;i<num;i++){if(num%i==0){a++; // 素数个数加1}}

if(a==0){printf("%d是素数。
", num);}else{printf("%d不是素数。
", num);}return 0;}



判断一个数是否是素数

#include "math.h"
int su(long x)
{
int i;
if(x%2==0) return 0;
else
for(i=3;i<sqrt(x);i+=2)
if(x%i==0) return 0;
return 1;
}

判断素数,若是就返回1,否则就返回0,先看能不能被2整出,若整除肯定不是素数,如不整除就看它能不能被3,5,7,9。。。一直到sprt(x),整除。若整除就不是素数

因为一个数的因子最大的是它的开平方,以后的都是以前的重复,因此判断其有没有素数的因子只需判断到它的开平方就好了,
因此这句写成
for
(i
=
2;
i
<=
sqrt(x);
i++)就更好了\


在c语言编程中,要如何判断一个数是否为整数?
方法1:include<stdio.h> include<math.h> float x;...if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\\n”);else printf(“x不是一个整数\\n”);方法2:int c=(int)b,d=(int)(b+0.999999)if(c==d)printf(“是整数\\n”);else printf(“不是整数\\n”);方法3:float b;...if...

用C语言的编程:利用调用函数,判断一个数是否是素数。
1、首先需要打开vs软件工程,准备好一个空白的C语言文件,引入头文件,主函数中暂时没有内容:2、这里开始编写代码,这里判断素数需要用到平方根,所以要在头文件中引入math库,然后编写判断素数的函数,函数有唯一的参数n,代表素数。判断的依据是素数n只要不能被 2 到根号下n之 间任一整数整除,则n...

C语言编程中如何判断一个字符是不是某个汉字,比如“我”。
一个汉字是两个字符,因此需要使用字符串来判断。

c语言编程题 :判断一个数是不是完数
C语言程序如下:include "stdio.h"int main(){ int n,i,sum=0;\/\/定义一个存放因子和的变量,以及需要判断的数n,和循环条件用到的i printf("请输入需要判断的数:");scanf("%d",&n);\/\/存放需要判断的数n for(i=1;i<n;i++)\/\/循环条件找出因子并累加 { if(n%i==0)sum+=i;} if...

用C语言编写程序,判断一个数是否为回文数。
1、首先打开vc6.0,新建一个控制台项目。2、添加头文件。3、添加main主函数。4、定义6个long型变量。5、使用scanf给input赋值。6、分解个位、百位、千位、万位。7、使用if判断。8、运行程序,看看结果。

C语言编写一个程序,判断输入的一个字符串是否是回文。
include <stdio.h> int main(){ int n, reversedInteger = 0, remainder, originalInteger;printf("输入一个整数: ");scanf("%d", &n);originalInteger = n;\/\/ 翻转 while( n!=0 ){ remainder = n%10;reversedInteger = reversedInteger*10 + remainder;n \/= 10;} \/\/ 判断 if (...

c语言中怎么判断一个数字的真假 如:int a=2,b=3 怎么判断的a&&b为真
非0为真,0为假 if(a&&b)就相当于if(a!=0&&b!=0),按你说的a=2,b=3,就是真的了

用c语言,编写程序判断一个正整数x在二进制下的位数
测试平台:Devc++ 输入:128,输出:8 include<stdio.h>#include<stdlib.h>#include<string.h>int main(){char a[10000];\/\/定义一个字符型数组,最多可以容纳10000位,可修改 memset(a,'\\0',10000*sizeof(char));\/\/对数组初始化 int n;scanf("%d",&n);itoa(n,a,2);\/\/改变成2进制,...

C语言中如何判断一个数是完全平方数
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建初始.cpp文件,例如:test.cpp。2、其次,在test.cpp文件中,输入C语言代码:int a = 64;double c = sqrt(a);if (c == int(c))printf("是完全平方数");else printf("不是完全平方数");3、编译器运行test.cpp...

c语言中if语句如何验证输入一个字母是否与给定的相同?
if (x == 'a'){ \/\/相同}else { \/\/不相同}对于判断一个字符串是否与给定字符串相同,则需要借助strcmp函数进行判断,如果返回0,则相等,比如判断字符串是否与给定的字符串"abc"相同,代码如下:if (strcmp(str, "abc") == 0){ \/\/相同}else { \/\/不相同}使用strcmp函数时,需...

乌兰察布盟17379076512: 用c语言编写:判断一个数是否为素数 -
益谢过岗: 判断素数的方法很多. 以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数.否则n为素数. 参考代码如下: int is_prime(int n)//判断n是否为素数.{ int i; for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则...

乌兰察布盟17379076512: 用C语言如何判断素数 -
益谢过岗:[答案] 所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除.因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数 另外判断方法...

乌兰察布盟17379076512: 编写一个C语言程序判断一个数是否是素数 -
益谢过岗:[答案] #include int is_p(int x) { int i; if(x

乌兰察布盟17379076512: 如何编写一个C语言程序判断一个数是否是素数? -
益谢过岗: 1. 思路1: 判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数.代码如下: #include <stdio.h> int main(){ int a=0; // 素数的个数 int num=0; // 输入的整数 printf("输入一个整数...

乌兰察布盟17379076512: 求C语言编程,判断一个数是不是素数 -
益谢过岗: 用6n+1,6n-1,判断简单.筛选法也可以 给出筛选法的代码 #include <stdio .h>#define MAXSIZE 200 #define DELETED 1 #define KEPT 0void main(void) {int sieve[MAXSIZE+1]; /* 待筛数组 */int count = 1; /* 素数总数 */int prime;int i, k;...

乌兰察布盟17379076512: C语言 关于判断素数 -
益谢过岗: 代码修改如下 #include int s(int m); int main() { int a; printf("请输入1个整数\n"); scanf("%d",&a); if(s(a)==1) printf("这个数是素数\n"); else printf("这个数不是素数\n"); } int s(int m) { int i; for(i=2;i

乌兰察布盟17379076512: 用C语言编程判断一个数是素数 -
益谢过岗: #includeint main() { int i,n,flag=0; printf("请输入一个数:"); scanf("%d",&n); if(n==1||n==0) { printf("不是素数!"); goto loop; } for(i=2;i

乌兰察布盟17379076512: 如何判断素数的c语言程序 - C素数程序?
益谢过岗: c语言求素数的思路算法方面,用c语言判断一个数是否为素数的方法其实不止一种.今天我所用编程环境Microsoft Visual C++.那么,什么是素数呢?素数是指,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数,素数也叫质数.求素数的C语言程序,下面我就给大家带来c语言判断素数的代码算法.

乌兰察布盟17379076512: C语言:判断某个整数是不是素数. -
益谢过岗: #include"stdio.h" int main(void) { int x,y,t=0; printf("请输入一个整数(1<x<32767):\n"); scanf("%d",&x); if(x<1||x>32767) printf("您的输入有误!\n"); else { for(y=2;y<x-1;y++) if(x%y==0) printf("%d NO!\n",x),y=x+2,t=0;//y=x+2是为了提前退出循环 else t=1; }if (t==1) {printf("%d YES!\n",x); } getch(); return 0;}

乌兰察布盟17379076512: C语言 判断一个数是否为素数??? -
益谢过岗: 原发布者:邂逅枫林 } if(i==val) printf("YES!\n"); else printf("No!\n");}注:for循环的功能:①若能整除,通过break跳出函数②若一直到val-1都不能整除,此时i再自增1到val,不满足i<val跳出for循环,这时i=val.2.通过函数来判断/* 目的:...

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