#include <stdio.h>
#include <math.h>
main()
{
int x,i,m;
float k;
scanf("%d",&x)
k=sqrt(x);
for(m=2;m<=k;m++)
if (x%m==0) break;
if (m>k) printf("%d is 质数\n",x);
else printf("%d is not 质数\n",x);
}
我来个详细的
#include "math.h"
main()
{
int m,i,k;
scanf("%d",&m);//输入判断的数据
k=sqrt(m); //定义k等于输入数据的平方根
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>k+1) printf("%d is a prime number\n",m);
else printf("%d is not a prime number\n",m);
}//这里首先让m被2到sqrt(m)除,如果m能被这之间的任何一个数据整除的话,
提前结束循环,此时i必然小于k,如果m不能被这之间的所有数整除,则完成最后一次循环以后,
i还要循环一次,此时的i=k+1,所以此时判断i的值就可以了,如果i大于或者等于k+1,则表示
m没有被整除过,输出“是素数”.
int prime(int m)
{
int i;
for(i=2;i<sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
main()
{
int n;
printf("Please a number to test:");
scanf("%d",&n);
if(prime(n))
printf("%d is a prime!\n",n);
else
printf("%d is not a prime!\n",n);
}
//如果是素数返回1,否则0。要求num是正整数。
int is_prime(int num)
{
int prime = 1;
for (int i = 2; i <= num / 2; i++)
{
if (num % i == 0)
{
prime = 0;
break;
}
}
return prime;
}
#include<iostream>
int sushu(ing a)
{
int b=sqrt(a);
for(int i=2;i<=b;i++)
{
if(a%i==0)
return 1;
else
return 2;
}
}
int main()
{
int ifsushu=97;
switch(sushu(ifsushu))
{
case 1:
cout<<ifsushu<<"是素数";
case 2:
cout<<ifsushu<<"不是素数";
defaule:
cout<<"输入错误";
}
}
程序如下:
#include <math.h>
#include <iostream.h>
main()
{
int m,i,k;
cout<<"enter the number:";
cin>>m;
k=sqrt(m+1);
for(i=2;i<=k;i++)
{
if(m%i==0)
break;
if(i>=k+1)
cout<<m<<" is a prime number!";
else
cout<<m<<" is not a prime number!";
return 0;
}
应该很容易看懂的,我就不注释了!自己看吧