C语言求素数的几种方式总结

 更新时间:2022年12月27日 08:40:32   作者:杨 戬  
这篇文章主要介绍了C语言求素数的几种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、判断n是否能被2~n-1整除

输入的数n不能被2-(n-1)整除,说明是素数

输入的数n能被2-(n-1)整除,说明不是素数

注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。

方法一

#include<stdio.h>
int main()
{
    int i, n;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    for (i = 2; i < n ; i++)
    {
        if (n%i == 0)
            break;
    }
    if (n <=1 ) printf("这不是素数\n");
    else  if (i < n) printf("这不是素数\n"); 
    else printf("这是素数\n");
    return 0;
 
}

方法二

#include<stdio.h>
int main()
{
    int i, n;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    if(n<=1)
        printf("这不是素数\n");
    else
        {
        for (i = 2; i < n ; i++)
	    {
             if (n%i == 0)
             break;
	     }
         if(i>=n)
	        printf("这是素数\n");
         else
	        printf("这不是素数\n");
	  }
	 return 0;
}

二、判断n是否能被2~√n间的整数整除

输入的数n不能被2-√n整除,说明是素数

输入的数n能被2-√n整除,说明不是素数

方法一

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i;
    double k;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    k = sqrt(n);
    for (i = 2; i <= k;i++)
    {
        if (n%i == 0) break;
    }
    if (n <=1 ) printf("这不是素数\n");
    else if (i <= k) printf("这不是素数\n");
    else printf("这是素数\n");
    return 0;
 
}

方法二

#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,k;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    if(n<=1)
        printf("这不是素数\n");
    else
    {
        k=sqrt(n);
        for (i=2;i<=k;i++)
        {
            if (n%i==0)
            break;
        }
        if(i>=k+1) 
            printf("这是素数\n");	
        else 
            printf("这不是素数\n");
    }
    return 0; 
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++ OpenGL实现三角形的绘制

    C++ OpenGL实现三角形的绘制

    这篇文章主要主要为大家详细介绍了如何利用C++和OpenGL实现三角形的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手尝试一下
    2022-06-06
  • c语言中static修饰函数的方法及代码

    c语言中static修饰函数的方法及代码

    在本篇内容里小编给大家分享的是一篇关于c语言中static如何修饰函数的知识点内容,有需要朋友们可以跟着学习下。
    2021-10-10
  • C语言单链队列的表示与实现实例详解

    C语言单链队列的表示与实现实例详解

    这篇文章主要介绍了C语言单链队列的表示与实现,对于研究数据结构与算法的朋友来说很有参考借鉴价值,需要的朋友可以参考下
    2014-07-07
  • 基于C语言string函数的详解

    基于C语言string函数的详解

    本篇文章是对C语言中string函数进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言对于volatile与gcc优化的探究

    C语言对于volatile与gcc优化的探究

    这篇文章主要介绍了C语言对于volatile与gcc优化的探究,volatile是一个特征修饰符(type specifier) volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。这是百度百科的介绍,那编译器是具体是怎么优化的呢
    2023-02-02
  • Linux搭建C++开发调试环境的方法步骤

    Linux搭建C++开发调试环境的方法步骤

    这篇文章主要介绍了Linux搭建C++开发调试环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C++图形界面开发Qt教程:嵌套圆环示例

    C++图形界面开发Qt教程:嵌套圆环示例

    这篇文章主要介绍了C++实现图形界面开发Qt教程,涉及坐标函数的应用及图形界面程序设计,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • c语言求出给定范围内的所有质数

    c语言求出给定范围内的所有质数

    本文主要介绍了c语言求出给定范围内的所有质数的小程序。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • C++模板template用法小结(推荐)

    C++模板template用法小结(推荐)

    这篇文章主要介绍了C++模板template用法总结 ,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • c语言实现计算圆周率的近似值

    c语言实现计算圆周率的近似值

    这篇文章主要介绍了c语言实现计算圆周率的近似值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论