判断一个整数是否为素数(质数)

//判断一个整数是否为素数(质数)
//质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数
#include <stdio.h>
int main()
{
int n, i, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 2; i <= n / 2; ++i)
{
//如果满足以下的条件,他就不是素数
if (n%i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
printf("%d不为素数", n);
else
printf("%d为素数", n);
return 0;
}

原文地址:https://www.cnblogs.com/Thomasming/p/10631424.html

时间: 2024-11-05 22:00:30

判断一个整数是否为素数(质数)的相关文章

经典算法之判断一个整数是否为素数

经典算法之判断一个整数是否为素数 1 /** 2 判断一个数是否为素数 如: 3 输入: 任意一个数 12 4 输出: 1或0(1表示为素数) 0 5 */ 6 /**************被称为笨蛋的做法************/ 7 #include <stdio.h> 8 9 int main() 10 { 11 12 int i,n; //i为计数数,n为存储用户输入的数 13 14 do //循环检测用户输入的数据>0为合法 15 scanf("%d",&

判断一个整数不是2的阶次方树

如果是一个2的阶次方,那么它的二进制数的首位一般是1,后面接若干个0.比如8就是1000,64是100 0000. 如果将这个数减1后,再与该数做和&运算,则改全为0. package cn.usst.DataTest; import java.io.*; /** * 从键盘输入一个值 */ public class InputData { static private String s = ""; static public void input() { BufferedRe

判断一个整数是否是2的n次方

参考:http://bbs.csdn.net/topics/370058619 如题,如何判断一个整数是否是2的N次方,我能想到的方法有两个 1.一直除2,看最后是否等于1.(最笨的方法) 2.转换成2进制,看是否是这个样子的:1,10,100,1000,10000,就是除了最高位是1,其他都是0,或者说只有一个1. 3.当我还在为我能想到第二个方法而沾沾自喜的时候,我看到了下面这种更巧妙的方法 以4(100) 7(0111) 8(1000)为例 4 & 3 --> 100 & 01

c语言:判断一个整数是不是2的整数次方

判断一个整数是不是2的整数次方. 解:程序: #include<stdio.h> int count(int t) { int count=0; while (t) { count++; t=t&(t-1); } return count; } int main() { int num,ret=0; printf("请输入一个整数:"); scanf("%d", &num); ret = count(num); if (ret == 1)

判断一个整数是否为另一个整数的幂数

   最近在学习微软推出的虚拟课程中关于网络上最火的20个关于c#的问题,写下关于对于这个问题的个人理解和解决思路,请各位看官笑纳. 题目为:(原)判断一个数字是否2的幂数? 这是我个人还没看正确答案前自己的解决思路(一个小控制台程序),代码如下: static void Main(string[] args) { for (int increment = 0; increment < 100000; increment++) { if (IsPower(increment)) { Consol

代码实现:判断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 <=

判断一个整数是否是平方数

367. Valid Perfect Square 题意:不用api,判断一个整数是否是平方数. 开始的想法是直接用二分法判断是否是平方数. 错误的代码: 1 public boolean isPerfectSquare(int num) { 2 // binary search 3 int i=0; 4 int n=num; 5 while(i<=n){ 6 int mid=i+(n-i)/2; 7 int square=mid*mid; 8 if(square==num) return tr

判断一个整数是否为回文数 Check if a number is palindrome

一种方法是先翻转当前数,然后把它和原数比较(略) 另一种是递归方法,借用一个复制数,对原数递归,使之翻转,然后配合复制数比较 package recursion; public class Check_if_a_number_is_palindrome { public static void main(String[] args) { int num = 121321; System.out.println(check(num)); num = 12321; System.out.printl

在10000以内判断一个整数,它加上100和加上268后都是一个完全平方数 3 提问:请问该数是多少?

1 ''' 2 在10000以内判断一个整数,它加上100和加上268后都是一个完全平方数 3 提问:请问该数是多少? 4 ''' 5 import math 6 for i in range(10000): 7 m = math.sqrt(i + 100) 8 n = math.sqrt(i + 268) 9 if m * m == i + 100 and n * n == i + 268: 10 print(i) 原文地址:https://www.cnblogs.com/JerryZao/p