求約數個數--java/C++
阿新 • • 發佈:2019-01-04
題目如下:
輸入n個整數,依次輸出每個數的約數的個數
注:重點看註釋部分,為程式易錯點
c++實現:
#include<iostream> #include<cstring> #include<cmath> using namespace std; int yueshu(int a){ int num=0; int i=1; for(i;i<=sqrt(a);i++){ /* 如果不採用此種折中方式則執行時間超時*/ if(a%i==0){ if(i==sqrt(a)){ num++; } else num=num+2; } } return num; } int main(){ int num; int a[1000]={0}; cin>>num; int i=0; for(i;i<num;i++){ cin>>a[i]; cout<<yueshu(a[i])<<endl; } }
java實現:
import java.io.*; import java.util.*; public class Main{ public static void main(String [] args){ Scanner s=new Scanner(System.in); String sc=s.nextLine(); int num=Integer.valueOf(sc); String ss=s.nextLine(); String []sss=ss.split(" "); for(int i=0;i<num;i++){ System.out.println(yueshu(Integer.valueOf(sss[i]))); } } static int yueshu(int a){ int num=0; for(int i=1;i<=Math.sqrt(a);i++){ if(a%i==0){ if(i!=Math.sqrt(a)) num=num+2; else num=num+1; } } return num; } }