标题:c语言求解!大一新生!
取消只看楼主
suhailan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-20
结帖率:100%
 问题点数:0 回复次数:3 
c语言求解!大一新生!
题目是输出100到200之间的素数。程序如下
#include<stdio.h>
int main(void)
{
int a,s=0,i;
for(a=100;a<=200;a++)
{s=0;
for(i=1;i<=a;i++)
if(a%i==0) s=s+i;
if(s==a+1) printf("%d\n",a);}
return 0;
}
这个程序是正确的,可是我不理解s的作用,有没有大神能够为我这个新手解答一下啊。谢谢谢谢谢谢!
搜索更多相关主题的帖子: c语言 大一新生 int for i++ 
2017-12-25 11:39
suhailan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-20
得分:0 
回复 2楼 wp231957
谢谢大神,我还有个问题想问一下
题目是输入两个正整数m和n,计算m和n的最大公约数。
到最后是不是要比较公约数的大小的?
我的程序是这样的
#include<stdio.h>
#include<stdlib.h>
int main(){
    int m,n;
    scanf("%d  %d",&m,&n);
    int t;
    int a;
    for(t=1;t<=m&&t<=n;t++)
        if(m%t==n%t)
            a=t;
        printf("%d\n",a);
        return 0;
}
我没有比较大小,可是为什么不会输出1,而输出了最大公约数?
2017-12-26 10:39
suhailan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-20
得分:0 
回复 4楼 wp231957
for(t=1;t<=m && t<=n;t++)&nbsp;&nbsp;&nbsp; if(m%t==n%t) a=t;我这句的意思是从1开始一个一个数地算下去,这样的话t应该是有很多值才对的,可是它好像会输出最大的t?这样的话是不是不用比较了?你能不能展示一下你的编写的程序呢?谢谢
2017-12-28 19:44
suhailan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-20
得分:0 
回复 5楼 花脸
不一定是最小的数吧?比如35和21,最大公约数是7啊
2017-12-28 19:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483702-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.397470 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved