用C语言编写求质数的程序

如题所述

//我分别写出了求素数和判断素数的程序
/*
//判断一个数是否为素数
#include<stdio.h>
#include<math.h>

int isprime(int);
void main()
{
int inumber;

printf("请输入一个非负整数: ");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素数!\n",inumber);
else
printf("%d不是素数!\n",inumber);
}
int isprime(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
return 1;
}
*/
/*****************************************************/

//求某个正整数以内的素数
#include"stdio.h"
#include"math.h"
int main(void)
{
int count,i,m,n,num;
printf("请输入所求范围(正整数): ");
scanf("%d",&num);
count=0;//count记录素数的个数
printf("%d以内的素数为:\n",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素数
{
printf("%6d",m);
count++;
if(count%10==0)//count为10的倍数时换行
printf("\n");
}
}
printf("\n");

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-26
//我分别写出了求素数和判断素数的程序
/*
//判断一个数是否为素数
#include<stdio.h>
#include<math.h>
int
isprime(int);
void
main()
{
int
inumber;
printf("请输入一个非负整数:
");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素数!\
",inumber);
else
printf("%d不是素数!\
",inumber);
}
int
isprime(int
a)
{
int
i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return
0;
return
1;
}
*/
/*****************************************************/
//求某个正整数以内的素数
#include"stdio.h"
#include"math.h"
int
main(void)
{
int
count,i,m,n,num;
printf("请输入所求范围(正整数):
");
scanf("%d",&num);
count=0;//count记录素数的个数
printf("%d以内的素数为:\
",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素数
{
printf("%6d",m);
count++;
if(count%10==0)//count为10的倍数时换行
printf("\
");
}
}
printf("\
");
return
0;
}
第2个回答  2013-03-15
#include "stdio.h"/*判断一个整数是否为质数*/
main()
{
int x,i;
printf("请输入一个大于二的整数\n");
scanf("%d",&x);
if(x=2)
{printf("%d",x);break;}
for(i=2;i<x;i++)
{
if(x%i==0)
{
printf("%d, 不是质数",x);break; }if(i+1==x)
printf("%d是质数\n ",x);}}
第3个回答  2009-11-16
这是求200以下质数的
#include "stdafx.h"
#include <stdio.h>
#include <math.h>

int main(int argc, char* argv[])
{

int m;
int i;
int k;

printf("素数是:\n");
for(m=0;m<=200;m = m+2)
{
k=sqrt(m);
for(i = 2;i <= k;i++)

if(m % i == 0)
break;
if(i>k)
printf("%4d",m);

}

return 0;
}
第4个回答  2009-11-16
#include <stdio.h>
#include <string.h>

#include <math.h>
int prime(int n)
{
int i,k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i>k)
return 1;
else
return 0;
}
main()
{
int n;
printf("Input a number:\n");
scanf("%d",&n);
if(prime(n))
printf("it is prime number.\n");
else
printf("it is not prime number.\n");
}
相似回答