C语言算法中,判断一个数是素数?要程序
5个回答
展开全部
/*To judge whether a number 'n' is prime number or not*/
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,k,prime=1;
do
{
printf("Please input a positive number:\nn=");
scanf("%d",&n);
}while(n<=0);
if(1==n)
prime=0;
k=(int)sqrt(n);
for(i=2;prime&&i<=k;i++)
if(0==n%i)
prime=0;
if(prime)
printf("%d is a prime number.\n",n);
else
printf("%d is not a prime number.\n",n);
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,k,prime=1;
do
{
printf("Please input a positive number:\nn=");
scanf("%d",&n);
}while(n<=0);
if(1==n)
prime=0;
k=(int)sqrt(n);
for(i=2;prime&&i<=k;i++)
if(0==n%i)
prime=0;
if(prime)
printf("%d is a prime number.\n",n);
else
printf("%d is not a prime number.\n",n);
return 0;
}
展开全部
#include<stdio.h>
#include <math.h>
void main()
{
int n,i,k;
printf("输入大于等于2的整数:n\n");
scanf("%d",&n);
k = (int )sqrt(n);
for(i = 2; i <= k;i++)
if(n % i == 0) break;
if(i > k)
printf("素数\n");
else
printf("不是素数\n");
}
#include <math.h>
void main()
{
int n,i,k;
printf("输入大于等于2的整数:n\n");
scanf("%d",&n);
k = (int )sqrt(n);
for(i = 2; i <= k;i++)
if(n % i == 0) break;
if(i > k)
printf("素数\n");
else
printf("不是素数\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如一个数n,比他小的质数有。怎么判断n是否质数?
n只要除以里的所有数,都除不尽,那么n就也是质数了,对吧。
而实际上,这个序列可以缩小。n只要除以这个序列里面,所有比根号下n小的质数,都除不尽,那么n就是质数了。因为如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。
例如21,它可以除尽7,而它同样可以除尽3。所以判断21是否质数,只需要判断21是否可以除尽2和3就可以了。5和7和11就不需要判断了。
所以for(i=1;counter++,prime[i]*prime[i]<=no;i++),就是说这个素数的平方达到了要判断的no的时候就退出,也就是判断所有比no的根号更小的素数。
n只要除以里的所有数,都除不尽,那么n就也是质数了,对吧。
而实际上,这个序列可以缩小。n只要除以这个序列里面,所有比根号下n小的质数,都除不尽,那么n就是质数了。因为如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。
例如21,它可以除尽7,而它同样可以除尽3。所以判断21是否质数,只需要判断21是否可以除尽2和3就可以了。5和7和11就不需要判断了。
所以for(i=1;counter++,prime[i]*prime[i]<=no;i++),就是说这个素数的平方达到了要判断的no的时候就退出,也就是判断所有比no的根号更小的素数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么没分呢?
BOOL IsPrime(int num)
{
int i,k; // define temperary variant
k=sqrt(num+1); // we only have to judge from 2 to sqrt(num+1)
for(i=2;i<=k;i++)
{
if(num % i==0)
{
break;
}
}
if(i>=k+1)
{
return true;
}
else
{
return false;
}
}
此为函数,可以自己写程序调用。如
#include <iostream>
#include <cmath>
BOOL IsPrime(int num); // 函数声明
void main()
{
int number1;
cin >> number1;
if(IsPrime(number1) == true)
{
cout << "Yes, it's prime!";
}
else
{
cout << "No, it's not Prime!";
}
}
如果可以,给点分。。。。
BOOL IsPrime(int num)
{
int i,k; // define temperary variant
k=sqrt(num+1); // we only have to judge from 2 to sqrt(num+1)
for(i=2;i<=k;i++)
{
if(num % i==0)
{
break;
}
}
if(i>=k+1)
{
return true;
}
else
{
return false;
}
}
此为函数,可以自己写程序调用。如
#include <iostream>
#include <cmath>
BOOL IsPrime(int num); // 函数声明
void main()
{
int number1;
cin >> number1;
if(IsPrime(number1) == true)
{
cout << "Yes, it's prime!";
}
else
{
cout << "No, it's not Prime!";
}
}
如果可以,给点分。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include <math.h>
void main()
{
int n,i;
//输入大于等于2的整数
scanf("%d",&n);
k = (int )sqrt(n);
for(i = 2; i <= k;++i){
if(n % i == 0)
break;
}
if(i > k)
printf("素数");
else
printf("不是素数");
}
#include <math.h>
void main()
{
int n,i;
//输入大于等于2的整数
scanf("%d",&n);
k = (int )sqrt(n);
for(i = 2; i <= k;++i){
if(n % i == 0)
break;
}
if(i > k)
printf("素数");
else
printf("不是素数");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询