标题:c语言求解!大一新生!
只看楼主
suhailan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-12-20
结帖率:100%
 问题点数:0 回复次数:8 
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
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
if(a%i==0) s=s+i; 这个是把一个数的因子都累加起来  因为素数的因子只有1和本身 所以才有下面 if(s==a+1) 则为素数

DO IT YOURSELF !
2017-12-25 13:37
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
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
你这for(t=1;t<=m && t<=n;t++)    if(m%t==n%t) a=t; 主体思想就不对啊 你拿几组数自己推演一下

DO IT YOURSELF !
2017-12-26 11:13
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 3楼 suhailan
最大公约数肯定小于两个数中最小的,可以先判断一下,再求。
2017-12-26 12:48
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
李伟康
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2017-3-21
得分:0 
先构建一个判断素数的函数
2017-12-28 22:27
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
得分:0 
回复 6楼 suhailan
你那输出应该包含在for循环里面它才会每个值都输出吧
2017-12-29 10:56



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




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

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