C语言:输出1000~2000之间的所有素数,每行输出8个,要求调用求素数函数。

 我来答
百度网友ca560fe
2019-10-12 · TA获得超过2.3万个赞
知道答主
回答量:70
采纳率:100%
帮助的人:3万
展开全部

#include <stdio.h>

int sushu(int n)

{

    int i;

    for(i=2;i<n;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以外的数整除。

函数在编程中的定义:

函数过程中的这些语句用于完成某些有意义的工作——通常是处理文本,控制输入或计算数值。通过在程序代码中引入函数名称和所需的参数,可在该程序中执行(或称调用)该函数。

类似过程,不过函数一般都有一个返回值。它们都可在自己结构里面调用自己,称为递归。

大多数编程语言构建函数的方法里都含有函数关键字(或称保留字。

参考资料来源:百度百科-函数

985967518
推荐于2017-09-24 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

思路:定义一个判断素数的函数,接着依次从1000到2000遍历判断,如果是则输出,每输出是8次输出换行。

参考代码:

#include <stdio.h>
int isp(int n){//判断一个数是否是素数 
    int i;
    for(i=2;i<n;i++)
        if(n%i==0) return 0;//不是素数返回0 
    return 1;//是素数返回1 

int main ()
{
    int i,j=0;
    for(i=1000;i<=2000;i++)
    if(isp(i)){//是素数则输出
        printf("%d ",i);
        j++;//统计输出次数
        if(j%8==0) //每输出8次输出换行
            printf("\n");
    }  
    return 0; 
}
/*
运行结果:
1009 1013 1019 1021 1031 1033 1039 1049
1051 1061 1063 1069 1087 1091 1093 1097
1103 1109 1117 1123 1129 1151 1153 1163
1171 1181 1187 1193 1201 1213 1217 1223
1229 1231 1237 1249 1259 1277 1279 1283
1289 1291 1297 1301 1303 1307 1319 1321
1327 1361 1367 1373 1381 1399 1409 1423
1427 1429 1433 1439 1447 1451 1453 1459
1471 1481 1483 1487 1489 1493 1499 1511
1523 1531 1543 1549 1553 1559 1567 1571
1579 1583 1597 1601 1607 1609 1613 1619
1621 1627 1637 1657 1663 1667 1669 1693
1697 1699 1709 1721 1723 1733 1741 1747
1753 1759 1777 1783 1787 1789 1801 1811
1823 1831 1847 1861 1867 1871 1873 1877
1879 1889 1901 1907 1913 1931 1933 1949
1951 1973 1979 1987 1993 1997 1999
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-10-11
展开全部
#include <stdio.h>
#include <math.h>
int sushu(int n)
{
int i,m;
m=sqrt(n+1);
for(i=2;i<=m;i++)
if(n%i==0)
return 0;
return 1;
}

void main()
{
int n,k,h=0;
printf("\n");
for(n=1000;n<=2000;n++)
{
k=sushu(n);
if(k==1)
{
printf("%4d ",n);
h++;
if(h%8==0)
printf("\n");
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式