判断大于二的数是否为素数

法一:当输入的数值n不大时,用输入的数n除以2-(n-1)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,flag=0;
    scanf("%d",&n);
    for(i=2;i<n;i++)
    {

        if(n%i==0)
        {
           flag++;
        }
    }
    if(flag==0)
        printf("%d 是素数\n",n);
    else
        printf("%d 不是素数\n",n);

    return 0;
}

法二:当输入的数值较大时用sqrt(n)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,flag=0;
    scanf("%d",&n);
    for(i=2;i<sqrt(n);i++)
    {

        if(n%i==0)
        {
           flag++;
        }
    }
    if(flag==0)
        printf("%d 是素数\n",n);
    else
        printf("%d 不是素数\n",n);

    return 0;
}

原文地址:https://www.cnblogs.com/spore/p/10252409.html

时间: 2024-10-13 11:41:54

判断大于二的数是否为素数的相关文章

判断一个大于1的数是不是一个素数

#include<stdio.h>#include<math.h> int main(){    int i,n,r,ret;    printf("请输入一个大于1的数:\n");    scanf("%d",&n);    r=sqrt(n);    for(i=2;i<=r;i++)    {       if(n%i==0)         {             ret=0;             break; 

5.*(编程)判断一个大于3的数是否是素数

1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int n,i; 6 scanf("%d",&n); 7 8 for(i=2.0;i<sqrt(n);i++) 9 { 10 if(n%i == 0) 11 { 12 break; 13 } 14 } 15 if(i<sqrt(n)) 16 { 17 printf("不是素数\n"); 18 } 19 els

代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

package com.heima.Coding; /* 判断101-200之间有多少个素数(质数),并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.*/ public class Test { public static void main(String[] args) { int count = 0; for (int i = 100; i < 200; i++) { for (int j = 2; j <=

o(1)取与n二进制 1个数的相等且 最小的 大于n 的数

给你一个uint32 a,让你找到另一个uint32 b,使b > a,且b的二进制中1的个数等于a二进制中1的个数.且使b最小.(数据保证可出) 1 因为1的个数不变,所以必然大于n+lowbit(n);(lowbit(int n){return n&-n;}//取n的最小一个100000串,也就是取最后一位二进制1),先得到ripple=n+lowbit(n); 2 这个时候改变的1个数,取one=ripple^n;one里面有改变的1个数n1,再加上新增位一共n1+1个1,那么把one

[LeetCode] Power of Three 判断3的次方数

Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it without using any loop / recursion? Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases. 这道题让我们判断一个数是不是3的次方数,在Le

3.键盘输入10个数,放到数组中,(1)去除该数组中大于10的数 (2)将该数组中的数字写入到本地文件number.txt中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; /* * 3.键盘输入10个数,放到数组中 (1)去除该数组中大于10的数 (2)将该数组中的数字写入到本地文件number.txt中 */ public class Test3 { public static int[] arr = new int[10]; public static void

c语言推断数是否是素数

这是推断数是否是素数.网络版非常.我觉得有点问题.今天一个朋友问我这个问题.我知道,今天,我把自己的代码,非常实用哦!. #include<stdio.h> #include<math.h> int Prime(unsigned int a) { unsigned int i; int k=0; if (a==1) k=1; else for(i=2;i<sqrt(a);i++) if(a%i==0) { k=1; break; } return k; } int main(

JS 判断字串字节数,并截取长度

JS 判断字串字节数,并截取长度 var matchWords; function notifyTextLength() { var inputNum = document.getElementById("txtTitle").value.replace(/[^\x00-\xff]/g, "**").length; //得到输入的字节数 if (inputNum <= 200) { matchWords = document.getElementById(&q

20,判断是不是二叉搜索树的后序遍历《剑指offer》

题目: 给定一个序列,判断是不是二叉搜索树的后序遍历 思路: 递归版: 一个正确的后序遍历可以分为三段来看: 1:最后一个值是根节点   2:左子树节点(都比根节点值小) 3:右子树节点(都比根节点大) 且满足左子树个数加右子树个数等于N-1:(N为后序遍历的节点总个数) 左子树和右子树又可以进行同样的操作,,,perfect的递归定义哈 然后判断出口: 1,正确的出口,子树只有一个元素或者零个元素(这零就是为什么要多写一个函数的原因了..) 2,错误的出口,左子树加上右子树的个数不等于N-1