搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ c语言求解!大一新生!
标题:
c语言求解!大一新生!
只看楼主
suhailan
等 级:
新手上路
帖 子: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
来 自:神界
等 级:
版主
威 望:
422
帖 子:13681
专家分:53296
注 册:2012-10-18
第
2
楼
得分:0
if(a%i==0) s=s+i; 这个是把一个数的因子都累加起来 因为素数的因子只有1和本身 所以才有下面 if(s==a+1) 则为素数
DO IT YOURSELF !
2017-12-25 13:37
suhailan
等 级:
新手上路
帖 子:12
专家分:0
注 册:2017-12-20
第
3
楼
得分: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
来 自:神界
等 级:
版主
威 望:
422
帖 子:13681
专家分:53296
注 册:2012-10-18
第
4
楼
得分:0
你这for(t=1;t<=m && t<=n;t++) if(m%t==n%t) a=t; 主体思想就不对啊 你拿几组数自己推演一下
DO IT YOURSELF !
2017-12-26 11:13
花脸
等 级:
蝙蝠侠
威 望:
9
帖 子:788
专家分:907
注 册:2017-1-4
第
5
楼
得分:0
回复 3楼 suhailan
最大公约数肯定小于两个数中最小的,可以先判断一下,再求。
2017-12-26 12:48
suhailan
等 级:
新手上路
帖 子:12
专家分:0
注 册:2017-12-20
第
6
楼
得分:0
回复 4楼 wp231957
for(t=1;t<=m && t<=n;t++) if(m%t==n%t) a=t;我这句的意思是从1开始一个一个数地算下去,这样的话t应该是有很多值才对的,可是它好像会输出最大的t?这样的话是不是不用比较了?你能不能展示一下你的编写的程序呢?谢谢
2017-12-28 19:44
suhailan
等 级:
新手上路
帖 子:12
专家分:0
注 册:2017-12-20
第
7
楼
得分:0
回复 5楼 花脸
不一定是最小的数吧?比如35和21,最大公约数是7啊
2017-12-28 19:45
李伟康
等 级:
论坛游民
帖 子:9
专家分:14
注 册:2017-3-21
第
8
楼
得分:0
先构建一个判断素数的函数
2017-12-28 22:27
wanmeiwuque
等 级:
新手上路
帖 子:14
专家分:0
注 册:2017-12-19
第
9
楼
得分:0
回复 6楼 suhailan
你那输出应该包含在for循环里面它才会每个值都输出吧
2017-12-29 10:56
9
1/1页
1
参与讨论请移步原网站贴子:
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