❶ 设计一个算法,输入一个正整数,求出它的所有正因数.
解 :第一步:给定一个正整数n,
第二步:依次以属于(2,n-1)的整数d为除数去除n,检查余数是否为0,若是,则d是n的因数;若不是,则d不是n的因数.
第三步:在n的因数中加入1和n,
第四步:输出n的所有因数.
❷ 对n个正整数进行排序的算法,使得所有偶数位于奇数之前
用c做的么?不知这样是否符合LZ的要求
输入10个正整数:例 1 2 3 4 5 6 7 8 9 10
输出10 2 8 4 6 5 7 3 9 1 //所有的偶数均在奇数之前
#include
#define n 10
void main()
{
int a[n],i,j=n-1,t;
printf("请依次输入%d个正整数:\n",n);
for (i=0;i
❸ 设计一个算法,输入一个正整数,求出它的所有正因数。
//基础版
voidprintYinShu(intnum){
for(inti=1;i<=num;i++){
if(num%i==0){
printf("%d,",i);
}
}
printf(" ");
}
我写的只是简单的打印出来。如果需要保存这些因数进行下一步操作你就自己写一点吧。
另外,有个简单的效率优化。
程序代码改成
#include<stdio.h>
#include<math.h>
voidprintYinShu(intnum){
intend=pow(num,0.5);
for(inti=1;i<=end;i++){
if(num%i==0){
printf("%d,%d,",i,num/i);
}
}
printf(" ");
}
voidmain()
{
printf("输入正整数获得所有正因数 ");
while(true){
intnum=0;
scanf("%d",&num);
printYinShu(num);
}
}
即可减少一半的循环量。但是如果直接用作输出就不那么美观了。
❹ 对n个正整数进行排序的算法,使得所有偶数位于奇数之前
用c做的么?不知这样是否符合LZ的要求
输入10个正整数:例 1 2 3 4 5 6 7 8 9 10
输出10 2 8 4 6 5 7 3 9 1 //所有的偶数均在奇数之前
#include <stdio.h>
#define n 10
void main()
{
int a[n],i,j=n-1,t;
printf("请依次输入%d个正整数:\n",n);
for (i=0;i<n;i++)
scanf("%d",&a[i]);
for (i=0;i<j;i++)
if (a[i]%2)
{
while (a[j]%2)
{
j--;
}
t=a[i];
a[i]=a[j];
a[j]=t;
j--;
}
for (i=0;i<n;i++)
printf("%d ",a[i]);
}
❺ 设计一个算法,判断正整数m是否是正整数n的约数
算法如下:
(1)正整数n除以正整数m,
(2)判断得到商是否为正整数且余数为零,
(3)如是输出m为n的约数,
(4)如否则输出m不是n的约数.
❻ 设计一个算法,输入一个正整数,求出它的所有正因数.
摘要 您好!我由于系统限制,我发给您会出现乱乱码和排序问题,所以只能请您移驾到以下网址查看了:https://blog.csdn.net/weixin_39890102/article/details/110774983?utm_term=python%E6%B1%82%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0%E7%9A%84%E6%89%80%E6%9C%89%E5%9B%A0%E6%95%B0&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~soweb~default-0-110774983&spm=3001.4430
❼ 设计一个算法,任意输入一个正整数,计算这个正整数的各位数字之和
如果只需要求和,那么:
#include<stdio.h>
voidmain(){
intn,s=0;
scanf("%d",&n);
while(n)
{s+=n%10;n/=10;}
printf("%d",s);
}
运行示例: