导航:首页 > 编程语言 > 判断是否为素数编程

判断是否为素数编程

发布时间:2022-04-16 09:17:33

Ⅰ 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. 思路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. 思路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)。

阅读全文

与判断是否为素数编程相关的资料

热点内容
编译怎么学 浏览:329
数码管显示0到9plc编程 浏览:665
服务器是为什么服务的 浏览:765
java定义数据类型 浏览:874
安卓pdf手写 浏览:427
什么是app开发者 浏览:284
android闹钟重启 浏览:101
程序员失职 浏览:518
在云服务器怎么改密码 浏览:586
服务器pb什么意思 浏览:940
51驾驶员的是什么app 浏览:670
php静态变量销毁 浏览:886
编程买苹果电脑 浏览:760
flac算法 浏览:497
reactnative与android 浏览:663
程序员是干什么的工作好吗 浏览:258
kbuild编译ko 浏览:469
条件编译的宏 浏览:564
韩语编程语言 浏览:646
小程序开发如何租用服务器 浏览:80