如何用c语言编程判断一个数是不是素数?
1、首先打开编辑器软件,在里面新的C语言文件里引入头文件并输入主函数,在主函数中输入代码:
2、然后写入判断素数的逻辑,这里先引入一个scanf函数,接受用户输入的数值存入变量,对接收的变量判断其是否为素数,判断的依据是如果能被2到n-1中的某个数整除就是素数,否则就不是。最后把判断的结果打印出来即可:
3、最后编译运行调试一下程序,按下crtl+F5编译,在弹出的命令行中输入17这个素数,程序判断的结果是素数说明程序的逻辑是没有问题的。以上就是C语言判断素数的方法:
判断一个数是否是素数
#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),整除。若整除就不是素数
方法一:
#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);
}
判断素数的方法很多。
以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数。否则n为素数。
参考代码如下:
int is_prime(int n)//判断n是否为素数。
{
int i;
for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。
if(n%i==0)return 0;
return 1;
}
在此基础上,可以将判断范围优化为i <= n/2 或i <=sqrt(n)(sqrt为算数平方根函数)。
这样可以减少判断次数,提高效率。
楼上的那复制来的?我的修改一下#include<stdio.h>
int prime(int m)
{int i;<br>for(i=2;i<=m/2;i++)<br>if(m%i==0) break;<br>if(i>m/2) return 1;<br>else return 0;}
main()
{int m;<br>scanf("%d",&m);<br>if(prime(m)&&m>=2) printf("%d是素数",m);<br>else printf("%d不是素数",m);<br>}负数、0、 1都不是素数,所以输入它们的时候显示不是素数(素数是从2开始的)
C语言怎么判断需要用;结束语句???
明确答复:k=0后面的分号不可以去掉,C语言语句的结束需要用分号。语句的结束符用英文的分号,表示语句的结束。每条语句都必须以分号;作为结束符号,否则编译器会报错。正常 报错 那么怎么判断一个语句?这就需要知道c语言的语法,C语言常用的语句。例如:返回语句return;,就需要在后面加分号。输入输出...
C语言函数编程判断闰年
1、首先我们点击桌面左下角的【开始】,打开Visual C++ 6.0软件。2、然后我们建立一个空的工程,再建立一个空的C源程序文件。3、这里主要用到库函数scanf(),调用格式:scanf(“%d”,&n);n为已定义的整形变量。取址符&,分号之类的都不要忘记写上。4、如果该年份能被100整除,继续判断,如果能...
用C语言编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出...
include <stdio.h> int main(){ int five;printf("输入一个整数:");scanf("%d",&five);while(five>10){ five = five%10;} if(five == 5)printf("yes");else printf("no");return 0;}
用C语言编程实现“判断某年某月有几天”
include <stdio.h>int main(){ int year; int month; int daysnum; printf("请输入年份:",year); scanf("%d",&year); printf("请输入月份:",month); scanf("%d",&month); switch(month){ case 1:case 3:case 5:case 7:case 8:case 10:case 12: ...
使用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语言编程:编写一函数判别某一数是否为素数,若是,返回值为1;否则...
include<stdio.h> void main(){ int a,c;int isSus(int n);\/*函数声明*\/ printf("请输入一整数a:\\n");scanf("%d",&a);c=isSus(a);\/*函数调用*\/ printf("%d",c);printf("\\n");} int isSus(int n)\/*函数定义*\/ { int j,t;for(j=2;j<n;j++)if(n%j==0){ t=0;b...
C语言指针编程:判断某字符串中是否有字符"m",并统计它的个数。_百度...
include stdio. h void main(){ int n=0;char *s;gets(s);while(*s!='\\0'){ if(*s=='m')n++;s++;} if(n)printf("此字符串中有%d个m\\n",n);else printf("此字符串中无字符m\\n);}
C语言编程--输入5个学生成绩 判断是否及格
printf("请输入五个学生的成绩, 用空格隔开:\\n");for(i = 0; i < 5; ++i){ zhiscanf("%d", &a[i]);} index = 0;for (i = 0; i < 5; ++i){ if (a[index] < a[i]){ index = i;} } printf("最高分:%d\\n", a[index]);printf("不及格分数:\\n");for(i =...
用c语言编程,输入四个数,判断这四个数据能否组成四边形
include<stdio.h> int main(){int a,b,c,d,max;scanf("%d%d%d",&a,&b,&c,&d);max=a>b?a:b;if(max<c)max=c;if(max<d)max=d;if(a+b+c+d>2*max)printf("可以构成四边形\\n");else printf("不可以构成四边形\\n");return 0;} ...
c语言。。用if语句编程,输入一个三位数,判断是否是水仙花数。_百度知 ...
1、严格的水仙花是三位数,并且其每位数的三次方的和等于它的本身。例子如下:370是一个严格的水仙花数,3^3+7^3+0^3=370.2、C 语言的"水仙花数"实现代码:include <stdio.h> include<math.h> int main (void) { long n,p;long c,a,j,s[30],i,q;p=0;a=10;scanf("%ld",&n);...
肥梁排石:[答案] #include "stdio.h" #include "math.h" main() {int i,n,flag=1; printf("Please Input a number:"); scanf("%d",&n); for (i=2;i
寒亭区15171953184: 用c语言编写:判断一个数是否为素数 - ?
肥梁排石: 判断素数的方法很多. 以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数.否则n为素数. 参考代码如下: int is_prime(int n)//判断n是否为素数.{ int i; for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则...
寒亭区15171953184: 如何编写一个C语言程序判断一个数是否是素数? - ?
肥梁排石: 1. 思路1: 判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数.代码如下: #include <stdio.h> int main(){ int a=0; // 素数的个数 int num=0; // 输入的整数 printf("输入一个整数...
寒亭区15171953184: 用C语言编程判断一个数是素数 - ?
肥梁排石: #includeint main() { int i,n,flag=0; printf("请输入一个数:"); scanf("%d",&n); if(n==1||n==0) { printf("不是素数!"); goto loop; } for(i=2;i
寒亭区15171953184: 求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;...
寒亭区15171953184: 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;}
寒亭区15171953184: 如何判断素数的c语言程序 - C素数程序??
肥梁排石: c语言求素数的思路算法方面,用c语言判断一个数是否为素数的方法其实不止一种.今天我所用编程环境Microsoft Visual C++.那么,什么是素数呢?素数是指,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数,素数也叫质数.求素数的C语言程序,下面我就给大家带来c语言判断素数的代码算法.
寒亭区15171953184: 判断素数C语言编程 - ?
肥梁排石: #include<stdio.h> main() {int i,j=0,a=0;/*a存素数个数*/ for(i=2;i<=100;i++) /*i作被除数*/ { for(j=2;j<=i;j++) /*j做被除数*/ if(i%j==0) break; /*如果i能被j整除,则退出小循环*/ if(i==j) { a++; /*如果j=i,则说明i只能被自身整除,i为素数*/ printf("%d ",i); /*输出i(素数)*/ } /*返回大循环*/ } /*结束循环*/ printf("\n"); /*换行*/ printf("%d\n",a); /*输出素数个数*/ }
寒亭区15171953184: C语言中怎么判断一个数是否是素数 - ?
肥梁排石: 原发布者:邂逅枫林 } if(i==val) printf("YES!\n"); else printf("No!\n");}注:for循环的功能:①若能整除,通过break跳出函数②若一直到val-1都不能整除,此时i再自增1到val,不满足i<val跳出for循环,这时i=val.2.通过函数来判断/* 目的:...
寒亭区15171953184: C语言判断是否为素数? - ?
肥梁排石: for(k=2;k<=100;k++) //从2开始一直100 {for(i=2;i<k;i++) //从2开始一直到当前数循环 if(k%i==0) //如果k被i整除,那么表示非素数,跳出循环 break; if(i==k) //如果不是从半路跳出循环的,那么是素数 printf("%d \n",k); }