怎么用c语言判断一个数是不是素数

作者&投稿:塔帜 (若有异议请与网页底部的电邮联系)
如何用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);

判断一个整数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);



解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}

解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}

解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}

最佳方案是用素数分布来处理,在处理大素数时尤其合理,用算术基本定理可能太慢了。如果知道素数分布相关知识,编出来还是很容易的,不然告诉你也是白搭。

用C语言编程:输入一个整数,判断这个数是奇数还是偶数。 请大家帮忙啊...
答:main(){ int x;printf("请输入一个整数");scanf("%d",&x);if(x%2 == 0) printf("%d是偶数\n",x);else printf("%d是奇数\n",x);} C语言:是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境...

用c语言编一个程序,判断一个数是否为素数
答:改为i<=k{if(m%i==0)printf("This is not a prime");break;//无论是否执行整除运算,都会跳出循环。应与上一句加上大括号,并且改为continue,或者直接return;if(i==k+1) //这一句是废话,for循环已经控制了值不能大于k。printf("This is a prime");}///如果前面使用return ,可以在这...

如何用c语言编写程序,输入一个数n不一定是整数,判定n是小于0,等于0还是...
答:你可以使用条件语句(if-else语句)来判断输入的数n是小于0、等于0还是大于0。下面是一个使用C语言编写的示例程序:```c include <stdio.h> int main() { double n;printf("请输入一个数:");scanf("%lf", &n);if (n < 0) { printf("输入的数是负数\n");} else if (n == 0)...

判断一个数 是否为素数 用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语言中,输入一个数字,怎么判断那个数字是整数还是实数,部分代码如下...
答:在c语言中,首先要定义变量,然后将数值传给变量;例如int a=8;double b=8;8因为传给不同的变量而使得8是不同类型的数据,所以按你的想法意思应该是脱离了存放8的变量,而去判断8这个数据的类型;这是不行的。程序会死循环是因为int b; b=1.2;赋值错误造成的 。你可以试一下;

C语言如何判断一个数是不是完全平方根,如果是返回1,不是返回0?
答:include<stdio.h> include<math.h> int fun(int n){ if(sqrt(n)==(int)sqrt(n))/*(int)强制转型,如果n不是完全平方数,开方后就是一个小数;int会去除小数部分;所以int型的开方数就与原开方数不等了;*/ return 1;else return 0;} int main(){ int n;scanf("%d",&n);if(fun...

C语言怎么用if判断一个输入数是不是整数
答:好像不行哎~如果你要判断,至少要把输入的东西全部读进来,这样的话只能用字符串来保存输入的值,然后对输入值进行检查,看是否有数字以外的字符,如果有,那么就不是整数,如果没有就是了,而且若需要获得这个整数的值,还要自己写方法把字符串转换为数字 ...

使用C语言编程:从键盘输入一个5的正整数,判断它是不是回文数。
答:itoa(*Hui,lenth,10))printf("这是%d位数",count);if(count==5){puts("go on..");}else{puts("your input is error!");exit(0);}}int main(){int* Huiwenshu=NULL;//也可以用int Huiwenshu[6];,推荐前一种int Last_digit;//末位数字int First_digit;//首位数字int Thou_...

用C语言编程从键盘输入一个数判断它是否为奇数(用函数的方法)_百度...
答:include<stdio.h> include<conio.h> // 包含getch()函数,用于暂停 char odd(int a)// 不能被2整除的数为奇数 { a = 2;if (a == 0)return 0;else return 1;} void main(void){ int input;scanf("%d",&input);if (odd(input))printf("input number is a odd number");else pr...

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文件,此时成功快速识别出了是不是完全平方数...