十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includestdio.h
成都创新互联主营盱眙网站建设的网络公司,主营网站建设方案,重庆APP开发公司,盱眙h5微信小程序搭建,盱眙网站营销推广欢迎盱眙等地区企业咨询
int main()
{
int i,j;
int count=0;
for(i=2;i100;i++)
{
for(j=2;j=i/2;j++)
if(i%j==0)//如果i能被j整除 就不是质数 退出循环
break;
if(ji/2)
{
count++;
printf("%-3d",i);
if(count%5==0)//当每一行有5个数时 换行
printf("\n");
}
}
return 0;
}
for(j=2;j=i/2;j++)中的 j=i/2是表示 从j=2开始遍历到j=i/2 看看2~i/2中能否整除i
如果都不能 说明i是质数(也就是ji/2)
如果有1个及以上能整除i 说明i不是质数
for()
{
}
//for循环结束之后 j的值是大于i/2的 因为for循环的条件是:j=i/2
//因此 当ji/2时 for循环结束
if(ji/2)
这里当且仅当2~i/2都不能整除i时 也就是ji/2 才说明i是质数
参考资料
输出100以内的质数,用c语言如何编写?.百度知道[引用时间2017-12-25]
#include stdio.h
int sushu(int n)
{
int i;
for(i=2;in;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main ()
{
int n,m,j=0;
for(n=1000;n=2000;n++)
{ m=sushu(n);
if(m==1)
{
printf("%d ",n);
j++;
if(j%8==0)
printf("\n");
}
}
return 0;
}
扩展资料:
定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
性质:素数大于等于2 不能被它本身和1以外的数整除。
函数在编程中的定义:
函数过程中的这些语句用于完成某些有意义的工作——通常是处理文本,控制输入或计算数值。通过在程序代码中引入函数名称和所需的参数,可在该程序中执行(或称调用)该函数。
类似过程,不过函数一般都有一个返回值。它们都可在自己结构里面调用自己,称为递归。
大多数编程语言构建函数的方法里都含有函数关键字(或称保留字。
参考资料来源:百度百科-函数
素数是只有1和自身才能整除的数。调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出。举例代码如下:
#include "stdio.h"
int prime(int n){//判断100~200间的数是否为素数
int i;
if(!(n1))
return 0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int n;
for(n=101;n200;n+=2)
if(prime(n))//调用prime判断n是否为素数
printf("%4d",n);//是则输出n
printf("\n");
return 0;
}
代码如下:
/*
* 输出 1~20 之间的质数
*/
#include stdio.h
#include math.h
//判断一整数是否为质数
int isprime(int n)
{
int i;
int up;
int ret = 1;
up = sqrt(n);
for (i=2; i=up; i++) {
if (n%i==0) {
ret = 0;
break;
}
}
return ret;
}
//主函数
int main()
{
int n;
printf("1~20 之间的质数有:");
for (n=2; n20; n++) {
if (isprime(n))
printf("%d ", n);
}
printf("\n");
return 0;
}
运行程序,输出如下:
1~20 之间的质数有:2 3 5 7 11 13 17 19
#include stdio.h
#inlcude math.h
void main(){
int m, k;
puts("please input the number:");
scanf_s("%d", m);
printf("the prime numbers include as following: ");
for (int j = 1; j = m; j++) {
k = sqrt(j);
for (int i = 2; i = k+1; i++) {
if (j%i == 0) {
break;
}
if (i == k + 1) {
printf("%d ", j);
}
}
}
}
输入值是100就可以求100以下的质数,为了你方便我没有把数字写死。
楼主的代码看的真是让我蛋疼,全局太多、函数定义和声明参数都没有类型、判断是否素数居然返回double、printf用法错误...各种我就不说了,给你修改了一下,编译运行成功,代码如下:
#includestdio.h
bool prime(int x);
int main()
{
int m,n,count=0,i,sum=0;
scanf("%d",m);
scanf("%d",n);
for(i=m;i=n;i++){
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d\n",count,sum);
return 0;
}
bool prime(int x)
{
int a;
bool result = false;
for(a=2;a*a=x;a++)
{
if(x%a==0)
break;
}
if(a*ax)
result = true;
return result;
}