CodeRookie


私信TA

用户名:Shmily124

访问量:120567

签 名:

清风前烹茶对弈,明月下把酒言欢

等  级
排  名 14
经  验 21342
参赛次数 7
文章发表 39
年  龄 0
在职情况 学生
学  校 ZUA
专  业 计科

  自我简介:

悄悄地秃头,然后惊艳所有人?

解题思路:

需要用到嵌套循环,外循环表示需要判断是否为素数的数字,内循环查找数字是否有因子

查找因子用枚举法,但只需枚举到该数字的平方根即可

因为数字的因子是成对出现的,而平方根就是因子的分割点,尽管平方根可能不是整数
求平方根需要用到一个函数 sqrt( ) ,头文件是<math.h>


参考代码:

#include <stdio.h>
#include <math.h>                       //开方函数sqrt()的头文件
int main()
{
    int n;
    scanf("%d", &n);                    //输入n
    for (int i = 2; i <= n; i++)        //外循环[2,n]
    {
        int j;
        for (j = 2; j < sqrt(i); j++)   //内循环查找因子[2,sqrt(i)]
        {
            if (i % j == 0)             //找到因子则跳出循环
                break;
        }
        if (j > sqrt(i))                // j > sqrt(i)代表循环未被中断,即没有因子
            printf("%d ", i);           //输出素数
    }
    return 0;
}


 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

#include<stdio.h>
int main()
{
    int n;
	scanf("%d",&n);
    if(n>=2)
    {
    	printf("2 ");
	}
    for(int i=2;i<n;i++)
    {
    	for(int k=2;k<=i-1;k++)
    	{
    		if(i%k==0)
    		{
    			break;
			}
			else
			{
				printf("%d ",i);
				break;
			}
		}
	}
	return 0;
}
这怎么了呢
2022-05-20 14:12:01
  • «
  • 1
  • »