Ⅰ c语言判断是不是素数的程序
1、首先打开CodeBlocks,创建一个新项目。
Ⅱ 判断是否是素数编程
#include<stdio.h>
int fun(int x)
{
for(int i=2;i<x;i++)
if(x%i==0)
return 0;
return 1;//是素数返回值为 1;
}
int main()
{
int n;
scanf("%d",&n);
if(n<2)
{
while(1)//无限循环,不执行break一直循环;
{
printf("输入错误;请重新输入 ");
scanf("%d",&n);
if(n>=2)
{
printf("输入正确;开始判断 ");
if(fun(n))
{
printf("%d is a prime number.",n);
break;
}
else
{
printf("%d is not a prime number.",n);
break;
}
}
}
}
else//n>=2时的素数判断;
{
if(fun(n))
printf("%d is a prime number.",n);
else
printf("%d is not a prime number.",n);
}
return 0;
}
Ⅲ 如何编写一个C语言程序判断一个数是否是素数
思路1:
判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。代码如下:
#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;
}
思路2:
另外判断方法还可以简化。m不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果m不能被 2 ~ 间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。代码如下:
#include <stdio.h>
#include <math.h>
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;
}
Ⅳ c++判断输入的数是否为素数,如何编程
#include
<iostream>
using
namespace
std;
#include
<math.h>
//此为数学函数库。程序中要用到数学函数时必须包含此语句。
void
f(int
n)
//此函数只判断是否为素数。
{
int
i,j=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
j++;
//j在这里只起标识作用,若为0不变则说明是素数,否则为非素数。
if(n==0||n<0)
cout<<"数据错误!"<<"\a"<<endl;
//“0和负数”显然不是处理的对象。
else
if(n==1)
cout<<"这个数不是素数。"<<endl;
//“1”要特殊处理。
else
{
if(j==0)
cout<<"这个数是素数。"<<endl;
else
cout<<"这个数不是素数。"<<endl;
}
}
int
main()
{
int
n;
cout<<"请输入要检验的整数:"<<endl;
cin>>n;
f(n);
return
0;
}
Ⅳ 用C语言的编程:利用调用函数,判断一个数是否是素数。
1、首先需要打开vs软件工程,准备好一个空白的C语言文件,引入头文件,主函数中暂时没有内容:
Ⅵ 用c++编程:输入一个数,判断其是不是素数
#include<stdio.h>
int main()
{
int m, n;
printf("请输入一个正整数: ");
scanf_s("%d", &m);
for (n=2; n < m - 1; n = n + 1)
if (m % n == 0)
break;
if (n < m)
printf("%d不是素数 ",m);
else
printf("%d是素数 ",m);
}
(6)判断是否为素数编程扩展阅读
C语言中条件判断语句if和switch的用法
用 if 语句可以构成分支结构,它根据给的条件进行判定,以决定执行哪个分支程序段。首先要注意switch 的语法结构,不能有错误。
整形表达式的结果值如果等于值1,就执行语句1,如果等于值2,就执行语句2,如果表达式的值与任何 case 都不一样的话,那么就会执行 default 后面的默认语句,也可以没有默认语句,最后结束整个 switch 语句。
注意每个语句后面的 break,如果没有 break,break 会跳出当前的 case 语句,从而跳出整个 switch 语句。case 后面的标签只能是整形常量或者整形常量表达式,不能用变量作为 case 的标签。
Ⅶ 如何用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语言编程判断输入的正整数是否为素数。
将:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在这个for循环前令g=0。
因为输入的不止一个数,开头的初始化g=0,在第一个数的时候就可能已经被改了。后面的数不重新初始化g=0,就不能保证对了。
判断一个正整数n是不是素数的思路:
思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
思路2):另外判断方法还可以简化。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<math.h>/*sqrt*/
#include<stdio.h>/*scanf,printf,system*/
int isPrime(int n)//判断n是否为素数,如果是则返回1,否则返回0。
{
if(n<=1)return 0;//小于等于1直接退出。
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//从2到算术平方根遍历。
if(!(n%i)) return 0;//存在约数,不是素数,返回0。
return 1;//不存在约数,返回1,表示为素数。
}
main ()
{
int num;
scanf ("%d", &num);
if ( isPrime( num) )//num是素数。
printf ("%d is a prime",num);
else
printf ("%d isn't a prime",num);//num不是素数。
system("PAUSE");//暂停界面。
return 0;
}
(8)判断是否为素数编程扩展阅读:
输入一个正整数或0,判断是否为质数:
#include "stdio.h"
int main()
{
while(1)
{
int n,flag,i;
printf("请输入一个数:");
scanf("%d",&n);
flag = n/2+1;
if(n==0||n==1)
printf("%d既不是质数也不是合数 ",n);
else if(n==2)
printf("%d是质数 ",n);
else
{
for(i=2;i<=flag;i++)
{
if((n%i)==0)
{
printf("%d不是质数,是合数 ",n);
break;
}
if(i==flag&&(n%i)!=0)
printf("%d是质数 ",n);
}
}
}
}
Ⅸ 判断一个数是否是素数的程序讲解
素数又称质数。所谓素数是指除了1和它本身以外,不能被任何整数整除的数。
该代码的基本思路为:如果m不能被2~它的平方根中的任一数整除,m必定是素数。
代码解析如下:
main()
{
int m; // 输入的整数
int i; // 循环次数
int k; // m 的平方根
scanf(%d,&m); //输入m
k=sqrt(m); //对m开方赋给k
for(i=2;i<=k;i++) //从2到k依次加1循环
if(m%i==0)break;//当m可以整除i时,退出,不整除,说明是素数
if(i>=k+1)
printf(%d is a prime number ,m);//i不小于k+1时,m是素数,否则,m不是素数
else
printf(%d is not a prime number ,m);
}
(9)判断是否为素数编程扩展阅读:
判断素数的程序代码的另一思路:判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
代码及解析如下:
#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;
}
Ⅹ 编写一个C语言程序判断一个数是否是素数
目的:判断一个数是否为素数
#include<stdio.h>
intmain(void)
{
int m;
inti;
scanf("%d",&m);
for(i=2;i< m;i++) //2到(m-1)的数去除m
{
if(m%i==0)//判断能否整除
break;
}
if(i== m)
printf("YES!
");
else
printf("No!
");
}
for循环的功能:
①若能整除,通过break跳出函数;
②若一直到m-1都不能整除,此时i再自增1到m,不满足i< m跳出for循环,这时i= m。
(10)判断是否为素数编程扩展阅读:
素数定理:
1、在一个大于1的数a和它的2倍之间(即区间(a,2a]中)必存在至少一个素数。
2、存在任意长度的素数等差数列。
3、一个偶数可以写成两个合数之和,其中每一个合数都最多只有9个质因数。(挪威数学家布朗,1920年)。
4、一个偶数必定可以写成一个质数加上一个合成数,其中合数的因子个数有上界。(瑞尼,1948年)。
5、一个偶数必定可以写成一个质数加上一个最多由5个因子所组成的合成数。后来,有人简称这结果为(1+5)(中国潘承洞,1968年)。
6、一个充分大偶数必定可以写成一个素数加上一个最多由2个质因子所组成的合成数。简称为(1+2)。