鱼C论坛

 找回密码
 立即注册
查看: 596|回复: 10

[已解决]关于输出100-200内的素数

[复制链接]
最佳答案
0 
发表于 2018-2-10 01:08:49 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1.jpg

  1. void main()
  2. {
  3.         int i,j,k;
  4.        
  5.         for(i=101;i<=200;i+=2)
  6.         {
  7.                 k=sqrt(i);
  8.                 for(j=2;j<=k;j++)
  9.                 {
  10.                         if(i%j==0)        break;
  11.                 }
  12.                 if(j>=k+1)
  13.                 {
  14.                         printf("%d ",i);
  15.                 }
  16.         }
  17. }
复制代码










2.jpg
  1. void main()
  2. {
  3.         int i,j,k;  
  4.         for(i=100;i<=200;i++)
  5.         {
  6.                 k=sqrt(i);
  7.                 for(j=2 ;j<=k;j++)
  8.                 {
  9.                         if(i%j==0)        break;
  10.                 }
  11.                 if(j>k)
  12.                         printf("%d ",i);
  13.         }
  14. }
复制代码








是不是这两种方法都可以,输出结果是一样的。






最佳答案
2018-2-10 12:43:42
都可以,显示第一种效率更高
最佳答案
3 
发表于 2018-2-10 07:31:41 From FishC Mobile | 显示全部楼层
第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103
最佳答案
1272 
发表于 2018-2-10 12:43:42 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
都可以,显示第一种效率更高
最佳答案
0 
 楼主| 发表于 2018-2-10 14:06:02 | 显示全部楼层
waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103

因为102 104 106 108 110 112这些都肯定不是素数啊
最佳答案
1 
发表于 2018-2-12 13:34:15 | 显示全部楼层
waitforlove 发表于 2018-2-10 07:31
第一个代码不符合题目要求,
i=101。   后面i+=2    循环一次后i=103

排除二的倍数
最佳答案
3 
发表于 2018-2-12 13:43:37 From FishC Mobile | 显示全部楼层
a98 发表于 2018-2-10 14:06
因为102 104 106 108 110 112这些都肯定不是素数啊

前提是你知道它不是素数
最佳答案
0 
 楼主| 发表于 2018-2-12 15:46:08 | 显示全部楼层
waitforlove 发表于 2018-2-12 13:43
前提是你知道它不是素数

也是
最佳答案
1 
发表于 2018-2-12 17:51:31 | 显示全部楼层
#include<stdio.h>
void main ()
{
        int i, j ,k ;
        for (i=2 ;i<100;i++)
        {       
               
                for(j=1; j<100;j++)
                {
                        k = (i%j);
                        if(k == 0)
                        break ;
                               
                }
                if(i=j)
                printf("%4d",i);

        }

}
最佳答案
0 
 楼主| 发表于 2018-2-12 20:49:09 | 显示全部楼层
LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{

??你是要求1-100内的素数吗

  1. #include<stdio.h>
  2. void main ()
  3. {
  4.         int i, j ,k ;
  5.         for (i=2 ; i < 100 ;i++)
  6.         {      
  7.                 k=0;
  8.                 for(j=2; j <= i/2 ;j++)
  9.                 {
  10.                         if(i%j == 0)
  11.                         {
  12.                                 k=1;
  13.                                 break;
  14.                         }
  15.                        
  16.                 }
  17.                 if(k==0)
  18.                         printf("%-4d",i);
  19.         }
  20.        
  21. }
复制代码
最佳答案
0 
 楼主| 发表于 2018-2-12 20:52:44 | 显示全部楼层
LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{

法2

  1. void main()
  2. {
  3.         int i,j,k;  
  4.         for(i=2;i<=100;i++)
  5.         {
  6.                 k=sqrt(i);
  7.                 for(j=2 ;j<=k;j++)
  8.                 {
  9.                         if(i%j==0)        break;
  10.                 }
  11.                 if(j>k)
  12.                         printf("%d ",i);
  13.         }
  14. }
复制代码
最佳答案
0 
 楼主| 发表于 2018-2-12 21:33:44 | 显示全部楼层
LYHCYQ 发表于 2018-2-12 17:51
#include
void main ()
{

你这种我改不过来 我发个帖问问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-16 14:32

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表