C语言 java 判断一个数是不是质数

来源:互联网 发布:js 控件赋值 编辑:程序博客网 时间:2024/06/05 01:08
#include<stdio.h>#include<math.h>/*质数判断的基本思路:对于正整数n(n>1),用2~根号n去除它,如果存在整除的情况,则n不是质数否则,必定为质数。*/void main(){    int n,i,k;    do    {        printf("输入一个正整数:");        scanf("%d",&n);    }while(n<=0);    if(n==1)        printf("%d不是质数",n);    else    {        k=(int)sqrt(n);        for(i=2;i<=k;i++)        {            if(n%i==0)//如果n能整除2~sqrt(n),那么就不是质数            {                break;            }        }        if(i>k)            printf("%d是质数\n",n);        else            printf("%d不是质数\n",n);    }}

输入:3

结果:

输入一个正整数:33是质数

java实现:算法都是一样的,只是输入输出不一样而已。

package Ctojava;/*质数定义为在大于1的自然数中,除了1和它本身以外 不再有其他因数的数。*/import java.util.Scanner;public class IsPrime{public static void main(String[] args){Scanner scanner=new Scanner(System.in);System.out.println("输入一个数:");int n=scanner.nextInt();if(n<=1){System.out.println(n+"不是质数");System.exit(0);//退出程序}int i;int k=(int) Math.sqrt(n);for(i=2;i<=k;i++){if(n%i==0)//如果找到一个因数ibreak;}if(i>k)//如果找不到因数那就是质数System.out.println(n+"是质数");else System.out.println(n+"不是是质数");}}
测试1:

输入一个数:22是质数
测试2:

输入一个数:1414不是是质数