问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言,读入一个整数k(2<=k<=10000),输出它的所有质因子

发布网友 发布时间:2023-09-07 15:48

我来回答

5个回答

热心网友 时间:2023-09-17 11:32

声明一个int型变量i,在2至i*i<=k的范围内遍历,当i能够整除k时,判断i和k/i二者是不是质数,是则输出i和(或)k/i,这样就达到题目要求了。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int prime(int n){//自定义判断质数的函数
    int i;
    if(n>2 && !(n&1) || n<2)return 0;
    for(i=3; i*i<=n;i+=2)
        if(!(n%i)) return 0;
    return 1;
}
int main(void){
    int k,x,i;
    while(1){//保证输入的k是符合要求的
        printf("Enter a positive integer k(1<k<=10001)...\nk=");
        if(scanf("%d",&k),k>1 && k<10001)
            break;
        printf("Error, redo: ");
    }
    for(x=0,i=2;i*i<=k;i++)
        if(k%i==0){//在i整除k的情况下
            if(prime(i))//i是质数就输出i
                printf("%d ",i);
            if(prime(x=k/i))//k/i是质数就输出k/i
                printf("%d ",x);
        }
    if(!x) printf("%d",k);//没有整除k的i,说明k是质数
    printf("\n");
    return 0;
}

热心网友 时间:2023-09-17 11:33

1、m代表的应该是开关 你这个函数虽然没有写返回类型 但是应该是bool类型或者int类型的返回值,当m=0时返回代表你所以输入的n值不是质数,m=1时代表你输入的值是质数。
2、n代表你要输入的值(判断是否是质数),这个函数不是产生质数的,而是判断你输入进去的n值是否是质数。
下面给你整段注释下 希望对你有帮助:
IsPrime ( int n )//前面最好有个int或者bool类型的返回值,判断输入的n是否是质数
{
int i, m; //m定义出来是相当于一个开关,具体见下
m=1; //m=1时相当于开着 如果最终返回的就是1代表这个是质数

for(i=2;i<n;i++) //用n除以2--n-1的余来判断是否是质数
if (!(n%i)) //这个等价于if(n%i==0)就是有等于0的余数就代表这个数已经不是质数了,因为可以被i这个数整数了
{
m=0; //当n不是质数 就将m设置成0;这样可以将m值返回 在外面通过返回值来判断是否是质数
break;
}
return(m);
}

热心网友 时间:2023-09-17 11:33

1.m是用来标记的,m=1代表n是质数,m=0代表不是质数.
2.n代表要判断的数
3.相当于if(n%i==0) 如果n除i的余数为0,说明n不是质数,那就return 0;
IsPrime ( int n )
{
int i, m;
m=1;

for(i=2;i<n;i++)
if (!(n%i))//n%i=0,说明n不是质数,返回0;
{
m=0;
break;
}
return(m);//m=1代表n是质数,m=0代表不是质数
}

热心网友 时间:2023-09-17 11:34

IsPrime ( int n )
{
int i, m;
m=1; //m就是一个标记为,开始标记为1

for(i=2;i<n;i++)
if (!(n%i)) //如果找到2到n-1,有一个数,可以被m求余为0,那么这个数就不是质数了
{
m=0; //如果不是质数,m标记为0
break;
}
return(m);
}
1. 上面解释了,是个标记位
2.n代表一个质数,就是检查n

热心网友 时间:2023-09-17 11:34

IsPrime ( int n )
{
int i, m; /*m是n是否为质数的标志,1表示n是质数,0表示n不是质数*/
m=1;
for(i=2;i<n;i++) /*判断n能否被小于n的数整除*/
if (!(n%i)) /* !(n%i)表示n mod i取余,余数为0,则n可被i整除*/
{
m=0; /*n可被i整除,故n不是质数,m=0*/
break;
}
return(m);
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
十亿韩元折合人民币是多少阿? 邮政银行卡余额查询 邮政储蓄查询余额怎么查 艰难 的国运与雄健的国民读后感500(把以前与现在作对比) 初一下册人教版 艰难的国运与雄健的国民 读后感300字 今日头条哪个版本的有电脑版电脑版今日头条怎么下载 今日头条在电脑上如何安装今日头条怎样就安装到电脑上了 如何评价武庙? 武经总要前集概述 武经总要军事思想 我想要找2011年江西省计算机2级(C语言)上半年考试试题及答案 手机屏幕怎么会点击失灵呢? excel达人请进 长宽高提取数据问题 触摸屏上实现输入按钮时应该链接的变量是什么类型 EXCEL表格怎么提取如图的A列的长、宽、高的数值分别反馈到B列、C列、D列,顺便讲解一下公式,谢谢!!! 建行贷款逾期有什么影响? 航天神舟生物科技集团有限公司电话是多少? 神舟生物科技有限责任公司电话是多少? 麻烦解释一下这个java程序的执行流程,详细一点,谢谢! 卤饵丝做法 成都按揭房子首付多少? 北京到上海 不坐飞机 自驾旅游 怎么走呢.. 皮带异响是什么原因? 自己在平安陆金所贷款的,现在被平安陆慧融起诉是怎么回事 建行可以进高铁站的vip吗 我要退保太平洋“乐享人生”交通意外附加家庭财产保险的话,有什么要求吗? 藕夹第二天复炸好吃吗 藕夹什么时候吃 大众汽车蓄电池没电了,开跑一圈充不上电是咋回事? 大众途昂全车没电无显示 简单的程序语言(C++) 读入一个整数(2&lt;=k&lt;=10000),打印它的所有质因子(即所有为素数的因子)。 编程:从键盘输入一个整数值k,再循环输入k个整数num,统计其中正数、零和负数的个数,分别存于整形 方言体验馆的实施目的 有什么惠普笔记本电脑推荐 惠普笔记本型号推荐 在程序读入字符文件时,能够以该文件作为直接参数的类是( )。 java的问题 在程序读入字符文件时,能够 以该文件作为直接参数的类是: 程序读入字符文件时,能够以该文件作为直接参数的类是? C语言文件读入字符的时候,总是会多读入一个字符,这是为什么啊? 在java程序中将中文字符写入文件中或者是将文件中的中文字符读入程序时会出现乱码或者一串“?”,求 套风控花呗收几个点利息啊 歙县常住人口 歙县有钱人多吗 编写程序,读入三个整数a,b,c然后把a的值给b,b的值给c,c的值给a然后输出a,b,c 编写程序:读入三个整数给a,b,c,然后交换它们中的数。把a中原来的值给b,把b中原来的值给c, 设计一个程序,读入三个整数,代表三角形三边长,程序显示三角形是不等边三角形,等腰三角形或等边三角形。 c语言编写程序,读入三个整数给a.b.c,然后交换他们中的数,吧a中原来的... 写一个程序,由大至小依次输出顺序读入的三个整数a,b,c的值。 C语言程序输入三个整数,执行结果是多少 绍兴核酸检测多少钱一次?(绍兴市做核酸检测多少钱)