❶ 設計一個演算法,輸入一個正整數,求出它的所有正因數.
解 :第一步:給定一個正整數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);
}
運行示例: